Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi Textdatei einlesen??? (https://www.delphipraxis.net/7417-textdatei-einlesen.html)

AgentAS 11. Aug 2003 20:42


Textdatei einlesen???
 
Hallo zusammen,

habe da ein kleines Prob. Wie kann ich eine Textdatei einlesen. Ich habe eine Tabelle aus einer Datenbank die in einer Texdatei abgelegt wurde.Die Felder der Datenbank werden durch "" und , unterteilt.

Hat jemand einen Vorschlag oder gar ein Script mit Beispielen?

Danke

Gruß

Andreas

alcaeus 11. Aug 2003 21:11

Re: Textdatei einlesen???
 
Die Frage ist wie du die Daten brauchst (in welchem Format). Wenn du sie nur in einem Memo brauchst, so wie sie in der Textdatei stehen, kannst du sie mit
Code:
Memo1.LoadFromFile(DateiName)
in das Memo laden. Andernfalls musst du Zeile für Zeile durchgehen...

Pascal 11. Aug 2003 22:32

Re: Textdatei einlesen???
 
Ich denke, dass du einzelne Datensätze aus Deiner Datei lesen willst.
Dazu musst du erst einmal eine Variable deklarieren, mit welcher du die Textdatei bearbeiten kannst. Dann kannst du mithilfe dieser Variablen die Datei zeilenweise auslesen und in einen String oder eine Stringliste speichern.

Ein Beispielcode:
Delphi-Quellcode:
procedure Readfile (filename: string);
varprocedure TForm1.Readfile(filename: string; var s: string);
var f: Textfile;
    helpstring: string;
begin
  Assignfile(f,filename); //Weist f die Datei zu
  reset (f); //Öffnet die Datei zum lesen
  s := '';
  while not eof (f) do begin
     readln(f,helpstring); //liest eine Zeile in den Helpstring
     s := s + helpstring; //fügt den Helpstring an s hinzu
  end;
  Closefile(f); //Schließt die Datei
  //!!! SEHR WICHTIG, sonst kannst du die Datei an einer
  //anderen Stelle nicht nochmal öffnen
end;
Wenn du nun noch einen Datensatz suchst oder einen Eintrag, würde ich empfehlen, eine Funktion zu schreiben, die dir das erleichtert, d.h., welcher du nur die Nummer des Datensatzes übergeben musst und dann den richtigen Datensatz erhälst.

Falls du in die Textdatei etwas schreiben willst, musst du statt reset(f) append(f) ausführen. Dies alles steht auch in der Hilfe, suche einfach mal nach Assignfile.

[edit=Luckie]Delphi-Tags hinzugefügt. Mfg, Luckie[/edit]

AgentAS 12. Aug 2003 09:39

Re: Textdatei einlesen???
 
Alles klar werde es so mal versuchen.

Danke für die Antwort

Gruß Andreas

AgentAS 15. Okt 2003 09:31

Re: Textdatei einlesen???
 
Hallo erstmal,

ich stehe hier vor einem kleinen(großen) Problem.

Ich möchte wie schon beschrieben eine Textdatei, die von einem anderen Programm erstellt wird, in eine andere Datenbank einlesen.

Dies will ich über eine Schnittstell machen die ich selber programmiere. Die daten werden in der Textdatei so dargestellt --> "Name","Vorname","PLZ","Wohnort".

Hier erstmal der Quellcode:
Delphi-Quellcode:
procedure TForm1.ReadfileEGUB2;
var F: TextFile;
     hFile,S: string;
begin
  if OpenDialog1.Execute then         { Dialog zum Dateiöffnen anzeigen }
  begin
    hFile := OpenDialog1.FileName;
    AssignFile(F, hFile);  { Datei ausgewählt }
    Reset(F);
    Readln(F, S);                         { Erste Zeile der Datei lesen }
    Memo1.Lines.Add(S);                      { String in ein TMemo schreiben }
    CloseFile(F);
  end;
end;
Aufruf der PROCEDURE:
Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
var hMemo : string;
begin
  ReadfileEGUB2;
end;
Wie kann ich die Daten aus der Texdatei direkt in ein Query einlesen. Um ein UPDATE auf
eine neue Datenbank zu machen, oder gibt es da einen anderen Weg. :wall:

Danke für eure Hilfe

Gruß AS

AgentAS 15. Okt 2003 11:20

Re: Textdatei einlesen???
 
Hi,

will ja nicht stressen aber könnte mir einer helfen. Wäre nicht schlecht. :roll:

Gruß AS

AgentAS 15. Okt 2003 11:56

Re: Textdatei einlesen???
 
Hab da was gefunden in Visual Basic.


Delphi-Quellcode:
  DoCmd.TransferText acImportDelim, _
  TableName:="AktuelleDaten", SpecificationName:="AktuelleDaten Importspezifikation", _
  FileName:="c:\Egub.txt", _
  HasFieldNames:=-1
Mein Vorgänger hat das in VB programmiert. Doch jetzt funktioniert es nicht mehr und da ich von VB keine Ahnung hab will ich es in Delphi umsetzten.

Gruß

AS


Alle Zeitangaben in WEZ +1. Es ist jetzt 03:52 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