Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi TXT Dateien Einlesen (https://www.delphipraxis.net/108227-txt-dateien-einlesen.html)

Frida88 9. Feb 2008 09:55


TXT Dateien Einlesen
 
Liste der Anhänge anzeigen (Anzahl: 1)
Hallo Zusammen
Bin noch sehr unerfahren in Delphi und möchte gern die txt.Datei im Anhang auslesen mit einer
Datenbank .
Würde gern Artikel Nummer , Bezeichnung usw. auslesen um dann mit den Daten berechnungen
wie zb. Verfügbarkeit des Bestandes usw.

Wie stelle ich das am besten an.
Wäre schon dankbar für einen Tipp wie ich die txt überhaupt auslesen kann.

Gruß Frida 66

Mackhack 9. Feb 2008 10:01

Re: TXT Dateien Einlesen
 
Delphi-Referenz durchsuchenCopy Delphi-Referenz durchsuchenPos Delphi-Referenz durchsuchenDelete

Jürgen Thomas 9. Feb 2008 10:04

Re: TXT Dateien Einlesen
 
Hallo,

zum Einlesen von Textdateien ist grundsätzlich TStringList das einfachste Verfahren.

Bei Deiner Datei musst Du im nächsten Schritt alle Zeilen, die Dich nicht interessieren, löschen (oder übergehen).

Die einzelnen Bestandteile musst Du genau nach Position innerhalb einer Zeile aufteilen per Substring und die Zahlenwerte per StrToInt u.ä. konvertieren. Dann kannst Du damit auch rechnen.

Empfehlung: Mach es Schritt für Schritt, dann geht es am einfachsten. Jürgen

Mackhack 9. Feb 2008 10:08

Re: TXT Dateien Einlesen
 
Vielleicht hilft dir das kleine Beispiel hier um zu verstehen was du machen musst:

Ausgangsinfo:
Zitat:

127.0.0.1
Hostname : mail.xxx.com
Unicode : /scripts/..%%35c..%%35cwinnt/system32/cmd.exe?/c+dir+c:\
Drive c space : 1.024 bytes free
Drive d space : 1.423.015.936 bytes free
ASP exploit : No
Firewall : No
Code zum zerpfluecken:
Delphi-Quellcode:
procedure TForm1.Button2Click(Sender: TObject);
Var
  i: Integer;
  Line: String;
begin
  Memo2.Clear;
  For i := 0 To Memo1.Lines.Count Do
  Begin
    If Pos('Hostname',Memo1.Lines[i]) <> 0 Then
      Line := Copy(Memo1.Lines[i - 1],0,15);
    If Pos('Unicode',Memo1.Lines[i]) <> 0 Then
      If Pos('/',Memo1.Lines[i]) <> 0 Then
      Begin
        Line := Line + Copy(Memo1.Lines[i],11,Length(Memo1.Lines[i]));
        Memo2.Lines.Add(Line);
      End
      Else
      Begin
        Line := Line + Memo1.Lines[i + 1];
        Memo2.Lines.Add(Line);
      End;
  End;
end;
Ausgabe:
Zitat:

127.0.0.1/scripts/..%%35c..%%35cwinnt/system32/cmd.exe?/c+dir+c:\

r2c2 9. Feb 2008 10:11

Re: TXT Dateien Einlesen
 
http://r2c2.weingut-rehn.de/content3...mit_Delphi.htm

Sollte helfen...

mfg

Christian

DP-Maintenance 9. Feb 2008 10:15

DP-Maintenance
 
Dieses Thema wurde von "Matze" von "Neuen Beitrag zur Code-Library hinzufügen" nach "Sonstige Fragen zu Delphi" verschoben.
In die Code-Library gehören nur funktionierende Code-Snippets.

Frida88 9. Feb 2008 15:45

Re: TXT Dateien Einlesen
 
Hallo zusammen
Vielen dank für die Tips:) Werde versuchen mich darein zu lesen und es zu probieren.
Aber wie spreche ich die Datei an. Also wie greife ich darauf zu wenn sie
bei mir auf C:...... usw weiter liegt.

Wäre für eure Hilfe dankbar.
Gruß
Frida88

r2c2 9. Feb 2008 15:50

Re: TXT Dateien Einlesen
 
Zitat:

Zitat von Frida88
Aber wie spreche ich die Datei an. Also wie greife ich darauf zu wenn sie
bei mir auf C:...... usw weiter liegt.

Steht schon hier im Thread und auch nochmal im verlinkten Tutorial: TStringList. Insbesondere die Methoden LoadFromFile und SaveToFile sollten dabei interessant sein...

mfg

Christian

marabu 9. Feb 2008 16:41

Re: TXT Dateien Einlesen
 
Herzlich willkommen in der Delphi-PRAXiS, Frida88.

Du möchtest Daten konvertieren, die in einem Report-Format vorliegen? Dann musst du nachempfinden, wie der Report erstellt wurde. Das fällt realtiv leicht, wenn du dir schonmal einen Banded Report Generator angesehen hast. Im Prinzip musst du beim Einlesen die Seitenstruktur erkennen - Trenner dürfte FF = #12 = Strg+L sein.

Manche Report-Elemente bestehen aus einer Zeile, andere aus mehreren. Manche haben eine Spaltenstruktur, wobei es Spalteneinträge geben kann, welche bei Bedarf auf mehrere Zeilen umgebrochen werden. Fast immer lässt sich ein Merkmal finden, an dem du erkennen kannst, wo ein Report-Element (Seitenkopf, Gruppenkopf, Wiederholungselement, ...) beginnt oder aufhört.

Firmen schreiben solche Datenkonvertierungswerkzeuge selten selbst, es gibt fertige zu kaufen: z.B. Monarch. Wenn dich bereits das einfache zeilenweise Einlesen einer Textdatei vor ein Problem stellt, dann wird das sicher ein größeres Projekt. Willst du oder musst du das selbst programmieren? Sieht irgendwie gar nicht nach Hobby aus.

Freundliche Grüße


Alle Zeitangaben in WEZ +1. Es ist jetzt 02:32 Uhr.

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