Entwickler-Ecke
Dateizugriff - Datensatzbeschreibung auf Textdatei anwenden
Stoffel1984 - Mo 01.09.03 14:50
Titel: Datensatzbeschreibung auf Textdatei anwenden
Hallo!
Ich habe hier eine Datensatzbeschreibung für Textdateien. Gibt es in Delphi eine Write Funktion für Textdateien, die ähnlich dem Copy Befehl arbeitet? Das Problem ist das ich eine Schnittstelle programmieren soll, die z.B. ab Stelle 15 3 Zeichen in einen String schreibt. Der Rest sind blanks. Und so weiter. Ich möchte also expliziet auf die Stellen in der Textdatei zugreifen. Ich denke mal ihr wisst was ich meine und habt auch schonmal sowas gesehn ;)
Viele Grüße,
Stoffel
FeG - Mo 01.09.03 15:31
Hallo,
dazu müsstest du die Datei komplett einlesen, eine Befehl, der nur einen Teil einer Datei verändert, gibt es IMHO nicht...
Zwei Möglichkeiten zum Öffnen von Dateien fallen mir spontan ein:
1) Komfortabel über TStringList... mit F1 erklärt die sich von selbst...
2) Über AssignFile(), Rewrite/Reset, Read/Write, etc.
Und dann halt mit dem normalen Copy-Befehl arbeiten...
MfG,
FeG
Stoffel1984 - Mo 01.09.03 15:47
Danke,
aber du hast mich glaube ich falsch verstanden. Ist aber kein Problem bin nicht so das große Erklärungsgenie ;)
Ich möchte eine Datei Neu erstellen. In diese Textdatei möchte ich dann an die einzelnen Stellen der Textdatei den Datensatz schreiben.
Verstanden? Ich hoffe es mal für.......mich ;)
Grüße, Stoffel
FeG - Mo 01.09.03 18:45
Stoffel1984 hat folgendes geschrieben: |
Verstanden? |
Glaub' schon :lol:
Also du willst eine Textdatei haben, in der Datensätze abgespeichert sind. Und der Rest der Datei soll mit irgendwas anderem gefüllt werden, also die Lücken mein ich...
Wieso sollen die Datensätze nur an bestimmten Stellen stehen?
Als Beispiel mal mit einer TStringList:
Delphi-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13:
| procedure var List: TStringList; i: integer; begin List:=TStringList.Create; try for i:=0 to 1000 do List.Add('XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'); List[0]:='XXXX'+'MaierMüllerWasWeißIchWas'+'XX...X' ); List.SaveToFile('C:\Datensätze.dat') finally List.Free end; |
War das das, was du wolltest??
Ansonsten - ich bin auch net grad das "Versteh-Genie" :wink:
... also dann vielleicht nochmal 'n bissl ausführlicher... :roll:
MfG,
FeG
Stoffel1984 - Di 02.09.03 09:04
Hallo und Danke!
Hast mir etwas weitergeholfen. Allerdings meinte ich nicht 1000 Zeilen sondern 1000 Stellen in einer Zeile. Hab mir jetzt mal was zusammengebastelt:
Delphi-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16:
| function TEST(Name: string; Strasse: string; PLZ: string; Ort: string): string; var List: TStrings; i: integer; begin List:=TStringList.Create; try List.Add(' '); for i := 0 to 998 do begin List[0]:= List[0] + ' '; end; List.SaveToFile('test.dat') finally List.Free end; end; |
Allerdings habe ich das Problem das ich expliziet eine Stelle in dieser Zeile ansprechen muss. Also Stringzeile[255] z.B.
Da in der Spezifikation von der ich es hatte eine Textdatei mit einer Zeile erwartet wird in der die div. Datensätze hintereinander stehen, also ab Stelle 1-15 z.B. Name dann ab 16-35 Adresse usw.
Kannst mir folgen?
Gruß,
Stoffel
Delete - Di 02.09.03 09:14
Datensätze, Datei, keine DB. Das klingt für mich nach typisierten Dateien.
barfuesser - Di 02.09.03 09:20
Hi,
wenn Du aus irgendeinem Grund keine typisierten Dateien, wie Luckie vorschlug, benutzen willst, dann sieh Dir mal DupeString an:
Delphi-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12:
| function TEST(Name: string; Strasse: string; PLZ: string; Ort: string): string; var List: TStrings; i: integer; begin List:=TStringList.Create; try List.Add(DupeString(' ', 1000)); List.SaveToFile('test.dat') finally List.Free end; end; |
barfuesser
Entwickler-Ecke.de based on phpBB
Copyright 2002 - 2011 by Tino Teuber, Copyright 2011 - 2025 by Christian Stelzmann Alle Rechte vorbehalten.
Alle Beiträge stammen von dritten Personen und dürfen geltendes Recht nicht verletzen.
Entwickler-Ecke und die zugehörigen Webseiten distanzieren sich ausdrücklich von Fremdinhalten jeglicher Art!