Avatar billede sorenriis Nybegynder
01. august 2004 - 11:44 Der er 6 kommentarer og
1 løsning

Fil til array?

Lige endnu et delphi-spørgsmål.
Jeg fik tidligere hjælp til at åbne en fil ind i en memo.

Det ser sådan her ud:

procedure TForm1.benlogfil1Click(Sender: TObject);
begin
if OpenLog.Execute then
  Memo1.Lines.LoadFromFile(OpenLog.Filename);
end;

Nu vil jeg gerne arbejde lidt med den fil inden den bliver smidt ind i memo'en.

Det jeg gerne vil gøre ved filen er at smide den ind i et array. Jeg har lavet noget lignende i php og der er et yderst smart kommando, som måske også findes i delphi?

De filer jeg åbner kan se nogenlunde således ud:

[Header]
Game=F1 Challenge 99-02
Version=1.026
TimeString=2004/06/22 14:29:14

[Race]
RaceMode=5
Scene=SEASONDATA\CIRCUITS\Hungary\2003RH_Hungaroring\2003RH_Hungaroring.SCN
AIDB=SEASONDATA\CIRCUITS\Hungary\2003RH_Hungaroring\2003RH_Hungaroring.AIW
Qualify Laps=12
Race Laps=38
Race Time=60
Race Length=0.503
Track Length=4154.0259

I PHP kan man smide den ind i et array, således at f.eks. $array[race time]=38.

Er der en smart måde at gøre det på i Delphi (I php kræver det kun 1 kommando)?

Når det så er gjort, vil jeg gerne bestemme hvilke ting fra array'et, der skal skrives i memo'en. Altså hele filen skal ikke udskrives i memo'en - kun de ting jeg ønsker....

-----------------------------
Lige et tillægsspørgsmål:
Hvordan laver man linjeskift i "showmessage" kommandoer?
Avatar billede stoney Nybegynder
01. august 2004 - 13:06 #1
Kig på Tinifiles, det er vist mere det du har brug for.

Det andet

showmessage('Linie 1' +#13#10 + 'Linie 2');

Stoney
Avatar billede stoney Nybegynder
01. august 2004 - 13:26 #2
procedure TForm1.Button2_writeClick(Sender: TObject);
var
  IniFile : TIniFile;

begin
  IniFile := TIniFile.create('c:\myini.ini');

  IniFile.WriteString('race','race laps','999');
  IniFile.WriteString('race','race time','99');


  inifile.free
end;

procedure TForm1.Button_readClick(Sender: TObject);
var
  IniFile : TIniFile;
  S : string;
begin
IniFile := TIniFile.create('c:\myini.ini');
S := IniFile.readString('race','race laps','');


showmessage('Racelaps= ' + s);
  inifile.free;
end;

Stoney
Avatar billede sorenriis Nybegynder
01. august 2004 - 13:37 #3
Forstår ikke 100% hvad det er der foregår:)

Tror måske vi er gået lidt fejl af hinanden.

Det der skal ske er:
1) Filen loades vha. OpenLog.Execute delen
2) Jeg skal have filen smidt ind i et array, således at jeg kan sende kun de ting jeg ønsker ind i Memo'en - f.eks. således at der står Racelaps=34 i memo'en, mens alt det andet i logfilen så at sige er fjernet.
3) Senere er det så meningen at alt det der står i Memo'en skal kunne gemmes i en ny fil...

Er det forståeligt nok? Synes selv det virker lidt uklart:)
Avatar billede stoney Nybegynder
01. august 2004 - 13:53 #4
Så brug en CheckListBox, så kan du vælge hvad du vil

procedure TForm1.Button2Click(Sender: TObject);
begin
// her fyldes CheckListBox'en
checklistbox1.Items.LoadFromFile('c:\myini.ini');
end;

procedure TForm1.Button3Click(Sender: TObject);
var
  i: integer;
begin
memo1.Clear;
// her skrives de ting i memo'em du har valgt fra CheckListBox
  for i := 0 to CheckListBox1.Items.Count - 1 do
    begin
      if CheckListBox1.Checked[i] then
        memo1.Lines.Add(CheckListBox1.Items[i]);
    end;
end;

Stoney
Avatar billede sorenriis Nybegynder
01. august 2004 - 14:04 #5
det lyder fint, men jeg må sige at jeg stadig er lidt lost.

Hvor er det lige den fil jeg har loaded læses ind?

Den fil brugeren åbner - det er vel den du "laver om" på vha. det ovenstående og så gemmer det i en form for midlertidig fil?
Avatar billede stoney Nybegynder
01. august 2004 - 14:29 #6
Avatar billede sorenriis Nybegynder
01. august 2004 - 15:59 #7
Mange tak for hjælpen... nu fandt jeg ud af det:)
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
Kategori
Kurser inden for grundlæggende programmering

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