AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren

Textdatei in ein Stringgrid einlesen

Ein Thema von Budda · begonnen am 13. Jan 2005 · letzter Beitrag vom 22. Jan 2005
Antwort Antwort
Budda

Registriert seit: 3. Sep 2003
96 Beiträge
 
Delphi 7 Professional
 
#1

Textdatei in ein Stringgrid einlesen

  Alt 13. Jan 2005, 09:04
Hallo,

habe nun schon viel gesucht und noch keinen Beitrag finden können der mein Problem so behandelt.
Und zwar möchte ich in ein Stringgrid eine Textdatei mit Daten einlesen die mit ( getrennt sind.
In der ersten Zeile stehen die Spalten überschriften. Anschliessend möchte ich dann in einer bestimmten Spalten nach bestimmten Strings suchen und diese durch andere Strings ersetzen.

Nur bleib ich schon bei dem Problem hängen die Textdatei in ein Stringgrid einzulesen.

Kann mir da vielleicht jemand weiterhelfen?


Gruß
Budda
  Mit Zitat antworten Zitat
Benutzerbild von Stevie
Stevie

Registriert seit: 12. Aug 2003
Ort: Soest
4.007 Beiträge
 
Delphi 10.1 Berlin Enterprise
 
#2

Re: Textdatei in ein Stringgrid einlesen

  Alt 13. Jan 2005, 09:38
Hi,

du kannst das ganze auch mit einem TClientDataSet und einem TDBGrid machen.
Über das ClientDataSet kann man imho bestimmte Dateiformate einlesen.
Ansonsten musst du dir selber einen Parser bauen, der die Textdatei in dein
StringGrid schreibt.

MfG
Stevie
Stefan
“Simplicity, carried to the extreme, becomes elegance.” Jon Franklin

Delphi Sorcery - DSharp - Spring4D - TestInsight
  Mit Zitat antworten Zitat
Benutzerbild von Sharky
Sharky

Registriert seit: 29. Mai 2002
Ort: Frankfurt
8.251 Beiträge
 
Delphi 2006 Professional
 
#3

Re: Textdatei in ein Stringgrid einlesen

  Alt 13. Jan 2005, 09:49
Hai Budda,

ich würde das mit zwei TStringList lösen. In die erste liest Du die Textdatei ein. Jetzt übergibst Du der zweiten jede einzelne Zweile an Delphi-Referenz durchsuchenDelimitedText und wertest das dann aus.
Stephan B.
"Lasst den Gänsen ihre Füßchen"
  Mit Zitat antworten Zitat
Budda

Registriert seit: 3. Sep 2003
96 Beiträge
 
Delphi 7 Professional
 
#4

Re: Textdatei in ein Stringgrid einlesen

  Alt 14. Jan 2005, 09:45
Hallo,

habe das einlesen nun mit folgender Procedure gelöst:
Code:
procedure ReadTabFile(FN: TFileName; FieldSeparator: Char; SG: TStringGrid);
var
  i: Integer;
  S: string;
  T: string;
  Colonne, ligne: Integer;
  Les_Strings: TStringList;
  CountCols: Integer;
  CountLines: Integer;
  TabPos: Integer;
  StartPos: Integer;
  InitialCol: Integer;
begin
  Les_Strings := TStringList.Create;
  try
    Les_Strings.LoadFromFile(FN);

    CountLines := Les_Strings.Count + SG.FixedRows;

    T := Les_Strings[0];
    for i := 0 to Length(T) - 1 do Inc(CountCols, Ord(IsDelimiter(FieldSeparator, T, i)));
    Inc(CountCols, 1 + SG.FixedCols);

    if CountLines > SG.RowCount then SG.RowCount := CountLines;
    if CountCols > SG.ColCount then SG.ColCount := CountCols;

    InitialCol := SG.FixedCols - 1;
    Ligne := SG.FixedRows - 1;

    for i := 0 to Les_Strings.Count - 1 do
    begin
      Colonne := InitialCol;
      Inc(Ligne);
      StartPos := 1;
      S := Les_Strings[i];
      TabPos := Pos(FieldSeparator, S);
      repeat
        Inc(Colonne);
        SG.Cells[Colonne, Ligne] := Copy(S, StartPos, TabPos - 1);
        S := Copy(S, TabPos + 1, 999);
        TabPos := Pos(FieldSeparator, S);
      until TabPos = 0;
    end;
  finally
    Les_Strings.Free;
  end;
end;
Die Textdatei hat das Semikolon als Trennzeichen, nun kommt es aber leider auch vor das in einem Feld Semikolons im Text sind, hier soll er dann natürlich nicht trennen. Kann man das irgendwie abfangen?


Gruß
Budda
  Mit Zitat antworten Zitat
Benutzerbild von Sharky
Sharky

Registriert seit: 29. Mai 2002
Ort: Frankfurt
8.251 Beiträge
 
Delphi 2006 Professional
 
#5

Re: Textdatei in ein Stringgrid einlesen

  Alt 14. Jan 2005, 09:48
Zitat von Budda:
.... Kann man das irgendwie abfangen?...
Hai Budda,
das kann eigentlich nur gehen wenn der Text dann in ein Quotingzeigen (z.B.: ") eingeschlossen ist.
Stephan B.
"Lasst den Gänsen ihre Füßchen"
  Mit Zitat antworten Zitat
Budda

Registriert seit: 3. Sep 2003
96 Beiträge
 
Delphi 7 Professional
 
#6

Re: Textdatei in ein Stringgrid einlesen

  Alt 14. Jan 2005, 13:14
Mir ist grade noch ein Problem aufgefallen.
Die letzte Spalte scheint er ganz weg zu lassen, hier fehlt auch die Überschrift in der ersten zeile.
Müssten 8 Zeilen sein sind aber nur 7.

Hab ich da was falsch gemacht?
  Mit Zitat antworten Zitat
xy210

Registriert seit: 22. Jan 2005
1 Beiträge
 
#7

Re: Textdatei in ein Stringgrid einlesen

  Alt 22. Jan 2005, 23:39
Zitat:
Müssten 8 Zeilen sein sind aber nur 7.

Hab ich da was falsch gemacht?
Hier:
Zitat:
TabPos := Pos(FieldSeparator, S);
until TabPos = 0;
wird TabPos nach dem 7. Feld auf 0 gesetzt und somit die Schleife beendet. Es steht aber in dem String noch was drin. Jetzt muß bloß der rest aus dem String wenn TabPos=0 ist in das nächste Feld (8. Feld) eingetragen werden.
Dann dürfte es klappen.
  Mit Zitat antworten Zitat
Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Ansicht

Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 01:35 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