Доброе время суток! Подскажите пожалуйста что то не могу сообразить( Есть ини например:
| Код | [UserCoun] Count=3 [User001] Name=Вася Path=Вася\Вася.dat [User002] Name=Не Вася Path=Не Вася\Не Вася.dat [User003] Name=Ваще не Вася Path=Ваще не Вася\Ваще не Вася.dat
|
И Вась может быть не определённое количество.
| Код | uses SysUtils, IniFiles, Classes, ShellAPI;
label Flag1; var Run: array[1..999] of string; DescriptionList: array[1..999] of string; ListFile: array[1..999] of string; Path: string; CountStr:String; ListNames:TStringList; Str,qq: string; i1,i2,i3:integer;
function Rus(mes: string):string; var i: integer; begin for i:=1 to length(mes) do case mes[i] of 'À'..'ï' : mes[i] := Chr(Ord(mes[i]) - 64); 'ð'..'ÿ' : mes[i] := Chr(Ord(mes[i]) - 16); end; rus := mes; end;
procedure FormActivate; var i, n, k, Found: integer; SearchRec: TSearchRec; ini: TIniFile; Category, Name, Description, RunPath: string; // äóìàþ, ÿñíî èç íàçâàíèé begin ListNames:=TStringList.Create; CountStr := '0'; Path := ParamStr(0)+'User\'; Path := extractfilepath(ParamStr(0))+'User\'; i := 1; Found := FindFirst(Path + 'UserNames.ini', faVolumeID, SearchRec); while Found = 0 do begin if FileExists(Path + SearchRec.Name) = true then begin ListFile[i] := Path + SearchRec.Name; Inc(i); end; Found := FindNext(SearchRec); end; FindClose(SearchRec); ListFile[i] := 'END'; if ListFile[1] = 'END' then Write(Rus('Íà äèñêå ' + Path + ' íå íàéäåíî íè îäíîãî êîíôèãóðàöèîííîãî ôàéëà.')); k := 1; for i := 1 to 999 do begin if ListFile[i] = 'END' then Break; ini := TIniFile.Create(ListFile[i]); CountStr:= IntToStr(StrToInt(CountStr) + ini.ReadInteger('UserCoun','Count', 0)); for n := 1 to ini.ReadInteger('UserCoun','Count', 0) do begin Category := ini.ReadString('User' + Format('%.3d', [n]), 'Name', 'áåç êàòåãîðèè'); if ListNames.IndexOf(Category) = -1 then begin ListNames.Add(Category); end; end; end; ini.Free; Write(Rus('Â äàííûé ìîìåíò â ïðîãðàììå ' + CountStr + ' Ñòàòüè.')+#10#13); end;
begin FormActivate; Flag1: for i1:=0 to ListNames.Count-1 do begin writeln(inttostr(i1)+') '+ListNames.Strings[i1]); end; readln(qq);
|
как создать команды именно создать! изначально не известно сколько вась? например:
| Код | if(qq='0')then Str:=Вася\Вася.dat; if(qq='1')then Str:=Не Вася\Не Вася.dat; и тд и тп goto Flag1;
|
Заранее благодарен! С уважением, Volkogriz! |