AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Text-Dateien in Delphi7

Ein Thema von Frischling · begonnen am 4. Dez 2006 · letzter Beitrag vom 6. Dez 2006
Antwort Antwort
Der_Unwissende

Registriert seit: 13. Dez 2003
Ort: Berlin
1.756 Beiträge
 
#1

Re: Text-Dateien in Delphi7

  Alt 5. Dez 2006, 08:25
HI und erstmal herzlich Willkommen in der DP

Dateien, die mehrere Datensätze über ein Zeichen trennen sind unter dem Namen CSV (Character Seperated File) bekannt. Such einfach mal in der DP nach Hier im Forum suchencsv.
Im Prinzip hat mkinzler schon alles wichtige Gesagt, du kannst mit der Methode LoadFromFile von der Klasse TStrings eine Datei laden. TStrings kannst du dabei nicht direkt instanziieren (solltest es jedenfalls nicht tun), da diese Klasse abstrakt ist. Du musst einfach nur einen der Nachfahren verwenden (TStringsList oder THashedStringList).
Beim Laden solltest du darauf achten, dass du einen absoluten Pfad angibst (relative Pfade beziehen sich immer auf das aktuelle Arbeitsverzeichnis, das wechseln kann, was aber ein anderes Thema ist). Am saubersten ist es, sich den absoluten Pfad zur Laufzeit zu generieren. Dazu kannst du einfach den ParamStr(0) verwenden, hier findest du den kompletten Pfad zu deiner Anwendung (Verzeichnis + Name der Exe). Extrahierst du hier den Pfad hast du zwar etwas absolutes, da es aber erst zur Laufzeit erzeugt wird ist dieser auf jedem System gültig. Alles hinter diesem Pfad kann dann relativ sein.
Auf die einzelnen Zeilen kannst du in einem TStrings Objekt direkt wie bei einem Array zugreifen. So kommst du schonmal an alle Zeilen, die gespeichert wurden.
Delphi-Quellcode:
var strings : TStrings;
    path : String;
    i : Integer;
begin
  strings := TStringList.Create;
  try
    // hier den absoluten Pfad zur Exe ermitteln (der Name der Exe wird "abgeschnitten"
    path := ExtractFilePath(ParamStr(0));

    // einen relativen Pfad (von dem Ordner in dem die Exe liegt)
    // und den Dateinamen ergänzen
    path := path + 'DeineDatei.xyz';

    // Laden der Datei
    strings.LoadFromFile(path);
    
    if strings.Count > 0 then
    begin
      // alle Zeilen auslesen und weiterverarbeiten
      for i := 0 to strings.Count - 1 do
      begin
        // doFoo ist dann die Methode, die den String weiterverarbeitet
        doFoo(strings[i]);
      end; // for i := 0 to strings.Count - 1
    end; // if strings.Count > 0
  finally
    strings.Free;
  end;
Ja, statt doFoo solltest du natürlich eine sinnvolle Funktion verwenden. Der Rest ist dann das zerlegen des Strings anhand der Komma (oder eines Trennzeichens), da wirst du in der Codelib sicherlich eine explode-Funktion finden bzw. einen StringTokenizer oder wie man die sonst so nennt.

An sich hier aber auch die Bitte, wenn du schon etwas versucht hast und nicht weiter kommst, dann sag doch einfach mal was genau du gemacht hast und was passiert ist. Das hilft dann den Leuten, die dir helfen wollen. Vielleicht bist du ja schon auf dem total richtigen Weg und hast nur einen kleinen Fehler drin. Man kann es dir einfach leichter erklären und man sieht auch, dass du dich bemühst (meine nicht, dass es hier nicht so rüber kam!).
Wenn also etwas noch nicht für die Umsetzung reicht, einfach mal sagen was du schon hast und wie du dir das denkst.

Gruß Der Unwissende
  Mit Zitat antworten Zitat
Antwort Antwort


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 04:57 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