Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Bestimmte Strings aus einer Datei in StringGrid einlesen (https://www.delphipraxis.net/66971-bestimmte-strings-aus-einer-datei-stringgrid-einlesen.html)

pp-deluxe 7. Apr 2006 10:13


Bestimmte Strings aus einer Datei in StringGrid einlesen
 
Hallo,

ich bekomme noch nen Koller :wall:, ich habe ein Programm zu schreiben, das bestimmte Strings aus einer *.TXT Datei in ein StringGrid-Gitter einlesen soll.

Soweit so gut ^^

Die Datei ist wie folgt aufgebaut:

23:13:24.44122112 PP:2 PP2:3 xD LOL VLC/VXX = 150/77
... jetzt kommen weitere Zeilen


Es soll generell xD, LOL und 150/77 NICHT eingelesen werden.

Delphi-Quellcode:

var
  i,int: Integer;
  int2: String;
  f: file of Integer;
begin
  AssignFile(f,'rofl.txt');
  ReWrite(f);

  Seek(f,4); // glaube das ist die 5 Stelle ^^                       
  Read(f,int2);                      

  ShowMessage((Int2));
  CloseFile(f);                    
end;
In diesem Fall soll der String nur in eine Messagebox gepostet werden!

Kann mir jemand bitte helfen?
Ich bin gerupft, getert und gefiedert :stupid: wenn ich das nicht bald hinbekomme ^^

Danke für eure Hilfe :thumb:

Klaus01 7. Apr 2006 10:20

Re: Bestimmte Strings aus einer Datei in StringGrid einlesen
 
mit Rewrite(f) überschreibst Du das File.
Zum Lesen öffnet man es mit Reset.

Grüße
Klaus

pp-deluxe 7. Apr 2006 10:38

Re: Bestimmte Strings aus einer Datei in StringGrid einlesen
 
unit1.pas(198,13) Error: Incompatible types: got "AnsiString" expected "LongInt"

sry ich bin halt kein Profi-Programmierer, was soll ich da machen?

Klaus01 7. Apr 2006 10:43

Re: Bestimmte Strings aus einer Datei in StringGrid einlesen
 
Delphi-Quellcode:
var
  dummy:String;
begin
  AssignFile(f,'rofl.txt');
  Reset(f);

  Seek(f,4); // glaube das ist die 5 Stelle ^^                       
  Read(f,dummy);      
 
  ShowMessage(dummy);
{  //voher prüfen ob der String auch eine Zahl ist            
  int2:=StrToInt(dummy);

  ShowMessage(IntToStr(int2));
}
  CloseFile(f);                    
end;
So ungefähr sollte es gehen.

Bist Du Die sicher, dass das ganze ein File of Integer ist?
Oder ist es doch ein Textfile, dann kannst Du aber nicht mit Seek arbeiten.

Grüße
Klaus

pp-deluxe 7. Apr 2006 11:32

Re: Bestimmte Strings aus einer Datei in StringGrid einlesen
 
ehrlich gesagt, ich hab keine Ahnung :coder2:
Wie gesagt, die Datei besteht aus aus Strings und Integern.

Das ist die aktuelle Fehlermeldung:
unit1.pas(197,15) Error: Incompatible types: got "AnsiString" expected "LongInt"

Klaus01 7. Apr 2006 12:05

Re: Bestimmte Strings aus einer Datei in StringGrid einlesen
 
Delphi-Quellcode:
var
  i,int: Integer;
  int2: String;
  f: TextFile;
  data :String;
 
begin
  AssignFile(f,'rofl.txt');
  {$I-}
    Reset(f);
  {$I+}
 
  if IOResult = 0 then
    while not eof(f) do
      begin
        Readln(f,data);                      
        // datenverarbeitung
        ShowMessage(data);
      end
  else
    // Fehler beim Datei öffnen

  CloseFile(f);                    

end;
Bei diesem Code kommt da auch die Fehlermeldung?

Grüße
Klaus

alzaimar 7. Apr 2006 12:22

Re: Bestimmte Strings aus einer Datei in StringGrid einlesen
 
Kannst Du die Datei im Notepad öffnen?
Besteht sie aus einzelnen Zeilen?

Dann ist es eine Textdatei, die zeilenweise eingelesen werden kann.

In jeder Zeile musst Du dann die entsprechenden Elemente suchen und extrahieren. Hier hilft Dir 'Pos' und 'Copy' weiter.

pp-deluxe 7. Apr 2006 12:34

Re: Bestimmte Strings aus einer Datei in StringGrid einlesen
 
Zitat:

Bei diesem Code kommt da auch die Fehlermeldung?
Nein es kommt keine Fehlermeldung, er zeigt halt nur die erste Zeile an.
Wie liest man die nächsten Zeilen ein?


Zitat:

Kannst Du die Datei im Notepad öffnen? Besteht sie aus einzelnen Zeilen?
ja

Zitat:

Hier hilft Dir 'Pos' und 'Copy' weiter.
:wiejetzt: Ich kenne diese Befehle überhaupt nicht, die Deklaration im Internet verstehe ich nicht, könntest du das anhand eines Beispiels mal zeigen?

ThX

Evian 7. Apr 2006 12:39

Re: Bestimmte Strings aus einer Datei in StringGrid einlesen
 
Zitat:

Zitat von pp-deluxe

:wiejetzt: Ich kenne diese Befehle überhaupt nicht, die Deklaration im Internet verstehe ich nicht, könntest du das anhand eines Beispiels mal zeigen?

ThX

mit copy kannst Du einen Teilstring aus einem String auslesen.
TeilString := copy(String,AnfangStelle,EndStelle)
AnfangStelle und EndStelle sind vom Typ Integer!

pos gibt dir die Stelle des ersten Auftretens eines Teilstrings in einem String wieder.
bsp.: position := pos(Teilstring,String);

raiguen 7. Apr 2006 12:44

Re: Bestimmte Strings aus einer Datei in StringGrid einlesen
 
Moin :-)
Zitat:

Zitat von pp-deluxe
ehrlich gesagt, ich hab keine Ahnung :coder2:
Wie gesagt, die Datei besteht aus aus Strings und Integern.

Das ist die aktuelle Fehlermeldung:
unit1.pas(197,15) Error: Incompatible types: got "AnsiString" expected "LongInt"

DIe Fehlermeldung allein hilft uns nicht weiter, weil wir ja nicht wissen, was in der angemeckerten Zeile von Dir gecodet wurde ;-)

Im allgemeinen:
1. In TextFiles werden Integer,Datum etc als String abgespeichert.
2. Ein SEEK(F,n) erwartet für den Parameter n eine Variable vom Typ LongInt, somit dürfte SEEK(F,4) zu Compilerfehler führen...

Wie Klaus01 richtig andeutet: komplette Zeile mit ReadLn(f,Data) auslesen und den resultierenden String entsprechend auseinanderpflücken:
Code:
Teilstring := Copy(data,1,Pos('xD',data)-1);
Mehrere Zeilen auslesen:
Code:
...
while not Eof(f) do
  bein
    ReadLn(f,data);
    //... weitere Anweisungen um Data zu extrahieren etc
end;


Alle Zeitangaben in WEZ +1. Es ist jetzt 19:32 Uhr.
Seite 1 von 2  1 2      

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