Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Delphi: Общие вопросы > Команды в консоли


Автор: Volkogriz 30.1.2014, 02:33
Доброе время суток!
Подскажите пожалуйста что то не могу сообразить(
Есть ини например:
Код

[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! 

Автор: ZBugz 30.1.2014, 06:13
Сначала "ВАСь" посчитай и и потом создавай.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)