• Здраво и добредојдовте на форумот на IT.mk.

    Доколку сеуште не сте дел од најголемата заедница на ИТ професионалци и ентузијасти во Македонија, можете бесплатно да се - процесот нема да ви одземе повеќе од 2-3 минути, а за полесна регистрација овозможивме и регистрирање со Facebook и Steam.

Читање на подесувања од некој фајл[PASCAL]

  • Ја почнал/а темата
  • #1

Aleks

Gaining Experience
18 мај 2007
5,748
288
Не бев фатил паскал во 2 месеци, па чера се тестирав колку сум заборавил, имав неколку проблеми но ја направив функцијата

Значи, ако имаме некој фајл со подесувања кои ни се важни за нашата програма, тогаш може да ги прочитаме со оваа функција и излезот на функцијата да го доделиме на некоја променлива:

Код:
program ReadSettings;


Function ReadValue(SFile,Sname,Delimeter: String):String;
VAR
  WorkFile:TextFile;
  IOR,J,K,B,X:Integer;
  Line:String;
  O:ARRAY[1..2] of String;
  tmpC:Char;
BEGIN
  Assign(WorkFile,SFile);
  {$I+}
  Reset(WorkFile);
  {$I+}
  IOR:=IOResult;
  If IOR=2 then
    begin
      WriteLn('Settings file not found!');
      Exit;
    end;
  While (NOT EOF(WorkFile)) do
    begin
      ReadLn(WorkFile,Line);
      J:=length(Line);
      B:=1; tmpC:=' '; X:=1;
      //O[1]:=''; //O[2]:='';

      repeat
        //X:=X+1;
        O[X]:='';


        repeat
          O[X]:=O[X]+Line[B];
          tmpC:=Line[B];
          //WriteLn(tmpC+' ++++++ '+O[X]);
          B:=B+1;
        until((B>J) OR (tmpC=Delimeter));


        //WriteLn('Pred if O[',X,']:= ',O[X]);
        if O[X]<>Sname+'=' then
          break     // MAIN
        else
          X:=X+1;
      until(B>J);

    end;
    //WriteLn(O[2]);
    //Ovalue:=O[2];
    ReadValue:=O[2];
END;


BEGIN
  WriteLn(ReadValue('/tmp/test.txt','ss','='));
END.
 

zlochko

Intern
23 мај 2008
140
7
www.linkedin.com
Лелее Паскал... е ова го неам видено многу многу години.
Него.. ми падна нешто у очи. Што ти е ова: {$I+} ??
Некако не го помнам дека сум го учел....
 
  • Ја почнал/а темата
  • #3

Aleks

Gaining Experience
18 мај 2007
5,748
288
{$x+/-} се директиви, преку нив може да му се нареде на компајлерот да изврши некоја core функција, во овој случај I -/+ е директива за error checking а ако нејзиниот резултат е 2 значи фајлот не е најден, ако е незнам која бројка беше, 25мислам фајлот не е достапен за пишување и така натаму иам и други директиви како

{$IFDEF LINUX}
WriteLn('HurayyyyyyyyyyyyyyYYY!');
{$ENDIF}

итн...
 

Нови мислења

Последни Теми

Статистика

Теми
43,546
Мислења
822,976
Членови
28,057
Најнов член
Iamdantes10
На врв Дно