Avatar billede stoney Nybegynder
14. juni 2006 - 10:08 Der er 6 kommentarer

Turbo Pascal DOS læse data fra text fil

Jeg vil helst undgå at bruge records til at læse
data fra en text/data fil Turbo Pascal Dos.

Er der nogle der har et forslag til hvordan det nemmest gøres.

Altså hvis jeg har Key2 hvordan finder jeg så værdien ?

Eksempel på text fil

key1=value1
key2=value2
Langkey3=value3

Text filen kan dog godt bygges op på anden måde hvis
det gør det nemmere.

Husk det er til Turbo Pascal 5.5 (DOS)

Stoney
Avatar billede pellelil Nybegynder
14. juni 2006 - 10:26 #1
BlockRead/BlockWrite !?
Avatar billede stoney Nybegynder
14. juni 2006 - 10:43 #2
har du et eks. der virker ? (uden records)

Stoney
Avatar billede pellelil Nybegynder
14. juni 2006 - 10:50 #3
Ikke lige ved hånden. Du skriver "uden records" hvorfor? hvad vil du opnå?

Hvis det er fordi du vil undgå "fixed length records" (poster med fast størrelse og dermed pre-defineret størrelse på Key1, Key2 og LangKey3) så vil BlockRead/BlockWrite heller ikke "virke".

Hvis du ikke har et problem med "fixed length records" så kan du bruge Seek til at "springe" til et bestemt sted i filen og via BlockRead/Write kan du læse/skrive et antal bytes. Husk dog når du opretter/åbner filen med Rewrite/Reset skal du angive en "record størrelse" (hvis du ikke sætter den til 1 forventer Pascal at den er 64K - hvis jeg husker korrekt). Du skal således bruge: "Reset(FileVar, 1)" og "Rewrite(FileVar, 1)". Selve filen skal bare være en File (altså ikke en "TextFile" eller "File of ...").
Avatar billede yates Nybegynder
14. juni 2006 - 12:25 #4
function GetVal(MyFile, MyKey: string): string;
var
  f: textfile;
  s: string;
begin
  assignfile(f, Myfile);
  reset(f);
  result:='';
  while not eof(f) do
    begin
    readln(f, s);
    if copy(s,1,length(mykey))=mykey then
        result=copy(s, pos('=',s) + 1, pos(#13,s)-pos('=',s)+1);

    end;
end;


Ingen kompiler her - har ikke testet det men det kunne vel være noget i den retning. Returnerer såadan cirka dit value som string. Tilpasses let til dit format.
Avatar billede stoney Nybegynder
15. juni 2006 - 11:09 #5
yates: med lidt tilretninger lykkedes det.
Tak for hjælpen, ligger du et svar ?

Stoney
Avatar billede yates Nybegynder
15. juni 2006 - 11:49 #6
Hej, jeg samler ikke på point. Bare glad at kunne hjælpe lidt. Og som du selv sagde, det skulle lige repareres lidt. Husk forresten closefile(f).

Y.
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester