![]() |
Re: Textdatei ohne Trennzeichen verarbeiten
Zitat:
Naja warum auch nicht... 10.000 Anweisung und Treiber für ein Problem welches sich mit einem simplen Move lösen läßt!
Delphi-Quellcode:
Frank :zwinker:
var
Zeile, Kundenname : Shortstring; begin ... Readln(f,Zeile); Move(Zeile[6],Kundenname[1],18); Kundenname[0] := #18; end; |
Re: Textdatei ohne Trennzeichen verarbeiten
Oder nimm einfach:
Delphi-Quellcode:
Grüsse Frank :mrgreen:
{$A1}
type TAdresse = record Kundennummer : String[5]; Kundenname : String[18]; Strasse : String[13]; end; var Zeile : String; f : Textfile; Adresse : TAdresse; begin While not(eof(f)) do begin readln(f,Zeile); with Adresse do begin Kundennummer := Copy(Zeile,1,5); Kundenname := Copy(Zeile,6,18); Strasse := Copy(Zeile,39,Sizeof(Strasse)-1); // oder so end; end; end; |
Re: Textdatei ohne Trennzeichen verarbeiten
Zitat:
Und ansonsten kümmer ich mich nur um die Verarbeitung der Sätze, die mir mundgerecht schon als einzelner Record geliefert werden. Einschränkung der Datensätze mittels SQL-Befehlen (via TADOQuery) Ob das Nachteile sind? Gut, wenn kein ADO vorhanden ... dann bleibt nur die Record-Variante ... aber muss ich mich als Programmierer um alles kümemrn ... oder darf ich auch Vorhandenes benutzen? cu Oliver |
Re: Textdatei ohne Trennzeichen verarbeiten
oh mann .... irgendwie stehe ich heute aufn Schlauch :(
Ich versteh nicht, warum mann das braucht:
Delphi-Quellcode:
wenn man später das macht:
type
TAdresse = record Kundennummer : String[5]; Kundenname : String[18]; Strasse : String[13]; end;
Delphi-Quellcode:
Ich dachte auch das ich evtl. mit AssignFile arbeiten muss ... weil die .txt Datei auf dem Server liegt ...
Kundennummer := Copy(Zeile,1,5);
Kundenname := Copy(Zeile,6,18); Strasse := Copy(Zeile,39,Sizeof(Strasse)-1); // oder so C:\Temp\personal.txt (Beispielpfad) |
Re: Textdatei ohne Trennzeichen verarbeiten
![]() Ich weise einer Datei-Variablen eine Datei zu.
Delphi-Quellcode:
var
ZeigerAufDatei : Text; begin AssignFile( ZeigerAufDatei, 'C:\Der\Pfad\zu\meiner\Datei.txt' ); ... end; |
Re: Textdatei ohne Trennzeichen verarbeiten
oder die ganz banale Methode (ist für Anfänger oft leichter zu verstehen)
Delphi-Quellcode:
Bei der Copy-Funktion musst du als Parameter die erste Position und die Länge übergeben, die musst du also einmal für alle Felder ausrechnen.
assignfile(eingabedatei,'hier kommt der Dateiname hin');
reset(eingabedatei); while not eof(eingabedatei) do begin readln(eingabedatei, eingabezeile); kundennummer:=trim(copy(eingabezeile, 1, 5)); vollername:=trim(copy(eingabezeile, 6, 19)); strasse:=trim(copy(eingabezeile, 25, 14)); etc. end; closefile(eingabedatei); Die Trim-Funktion sollte man nicht vergessen, weil man sich sonst lauter überflüssige Leerstellen in die Daten reinholt. Auf diese Art erhält man die Daten jeweils in String-Format. Falls numerische oder Datums-Angaben enthalten sind, müssen diese noch entsprechend umgewandelt werden! PS: das mit dem Record funktioniert nur, wenn du Arrays verwendest. Dann musst du aber auch noch mal rumschieben, um die Daten auch auswerten zu können. Bei Strings in der Record-Definition fällst du auf die Nase ... das liegt an dem Längenbyte, das auch Mavarik schon angesprochen hat (ansprechbar mit stringname[0]) ... dieses ist aber in der Eingabedatei nicht enthalten. |
Re: Textdatei ohne Trennzeichen verarbeiten
Ja Sir Rufo,
habs bissl blöd formuliert, sorry |
Re: Textdatei ohne Trennzeichen verarbeiten
Zitat:
Im übrigen lässt sich das auch ohne ADO mit passender INI lösen, z.B. so:
Delphi-Quellcode:
Dann kann man sich die Positionen im Programm auch ausrechnen.
[Feldlaengen]
Kundennummer=5 Vollername=19 Strasse=14 etc. |
Re: Textdatei ohne Trennzeichen verarbeiten
Super Globetrotter77 !
Sowas habe ich gesucht :) da hätte ich jetzt nur noch eine Frage, wie ich die eingabedatei definiere ? string oder ? Dankeschön euch allen, ich probiers gleich mal aus und gebe noch einmal ein Feedback ^^ |
Re: Textdatei ohne Trennzeichen verarbeiten
Delphi-Quellcode:
Edit: reset hat gefehlt
var eingabedatei: TextFile;
eingabezeile: string; kundennummer: string; begin assignfile(eingabedatei,'test.txt'); reset(eingabedatei); while not eof(eingabedatei) do begin readln(eingabedatei); kundennummer:=Trim(copy(eingabezeile,1 , 5)); ... end; closefile(eingabedatei); |
Alle Zeitangaben in WEZ +1. Es ist jetzt 07:53 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