Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi Problem bei textfile (https://www.delphipraxis.net/68469-problem-bei-textfile.html)

devilone 30. Apr 2006 00:12


Problem bei textfile
 
Hi ..

Habe ein Problem..

und zwar möchte ich ein Textfile durchsuchen, nach einer bestimmten zahl.

Vor der Zahl steht immer das selbe und hinter der Zahl immer ein Leerzeichen..

wie bringe ich dem programm das bei das er das hinter dem Leerzeichen nichtmehr beachtet...

hoffe ihr könnt mir helfen..

Mfg Devilone

Matze 30. Apr 2006 00:19

Re: Problem bei textfile
 
Hi,

dann denke ich, wäre es das einfachste, die Datei zeilenweise durchzugehen.

devilone 30. Apr 2006 00:26

Re: Problem bei textfile
 
hi Matze

ja aber wie habe kein ahnung wie ich da anfangen soll...
hier mal ne andere suchfunktion die auch klappt.. da nach dem suchwort nichts mehr steht..

Delphi-Quellcode:

procedure TForm1.Button7Click(Sender: TObject);
begin
if fileexists ('world.save') then
 begin
     assignfile (w,'world.save');
reset (w);
tota:=0;
repeat
  readln (w,line);
  if line = '[OBJECT]' then
  tota:=tota+1;
until eof (w);
label4.Caption:= inttostr (tota);
closefile(w);
 end
 else
 begin
     showmessage ('Kein World.save vorhanden');
 end;
end;
aber bei den anderen suchwörtern steht immer noch was dahinter..

MrKnogge 30. Apr 2006 00:32

Re: Problem bei textfile
 
du prüfst ja auch ob dein Wort gleich der ganze String ist, du musst aber prüfen ob dein Wort in dem String vorkommt, "pos" heist hier das Lösungswort.

Delphi-Quellcode:
procedure TForm1.Button7Click(Sender: TObject);
begin
  if fileexists('world.save') then begin
    assignfile(w, 'world.save');
    reset(w);
    tota := 0;
    repeat
      readln(w,line);
      if pos('[OBJECT]', line) <> 0 then tota := tota + 1;
    until eof(w);
    Label4.Caption := IntToStr(tota);
    CloseFile(w);
  end
  else ShowMessage('Kein World.save vorhanden');
end;
Diese Lösung funktioniert aber nur wenn '[OBJECT]' höchstens einmal pro Zeile vorkommt.

gruss

devilone 30. Apr 2006 00:35

Re: Problem bei textfile
 
Hmm.. mal schauen ob ich das hinbekomme .. :-))

Rechtschönen dank erstmal..

Mfg Devilone

devilone 30. Apr 2006 02:13

Re: Problem bei textfile
 
hmm.. das was du gepostet hast klappt super..

aber wie bekomme ich das hin , wenn sich die zahle immer ändert??

das hier habe ich probiert klappt aber nicht..

Delphi-Quellcode:
procedure TForm1.Button8Click(Sender: TObject);
var
sn:integer;
begin
 try
 listbox1.Items.Append('SPAWN='+label1.Caption) ;
 sn:= 0 ;
 assignfile (w,'world.save');
 reset (w);
 assignfile (t,'tests.scp');
 rewrite (t);
repeat
readln(w,line);
if pos('SPAWM='+(label1.Caption)+' ', line) <> 0 then sn:= sn + 1;
until eof(w);
 label5.Caption:= inttostr (sn);
 closefile (w);
 closefile (t);
 finally
 button2.Show;
 button3.Show;
 button4.Show;
 label1.Caption:='';
 button1.Hide;
 end;
end;

ok ist zwar nicht sehr elegant aber funtz jetzt...
Delphi-Quellcode:
procedure TForm1.Button8Click(Sender: TObject);
var
sn:integer;
sie:string;
begin
 try
 listbox1.Items.Append('SPAWN='+label1.Caption) ;
 label7.Caption:= label1.Caption + ' ';
 sie:='SPAWN='+label1.Caption;
 sie:=sie+' ';
 sn:= 0 ;
 assignfile (w,'world.save');
 reset (w);
 assignfile (t,'tests.scp');
 rewrite (t);
repeat
readln(w,line);
if pos(sie, line) <> 0 then sn:= sn + 1;
until eof(w);
 label5.Caption:= inttostr (sn);
 closefile (w);
 closefile (t);
 finally
 button2.Show;
 button3.Show;
 button4.Show;
 label1.Caption:='';
 button1.Hide;
 end;
end;

Danke für eure hilfe..

bis zur nächsten Frage...


Alle Zeitangaben in WEZ +1. Es ist jetzt 17:01 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz