Autor Beitrag
Stoffel1984
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 219

Win NT, Win 2000
D6 Prof
BeitragVerfasst: Mo 01.09.03 14:50 
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
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 77

Win XP Home, SuSE Linux 8.2 Prof
D3 Prof, D7 Prof
BeitragVerfasst: 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 Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 219

Win NT, Win 2000
D6 Prof
BeitragVerfasst: 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
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 77

Win XP Home, SuSE Linux 8.2 Prof
D3 Prof, D7 Prof
BeitragVerfasst: 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:
ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
procedure {irgendwas}
var List: TStringList; i: integer;
begin
List:=TStringList.Create;
try
  for i:=0 to 1000 {gesamt-Zeilenanzahl...} do
    List.Add('XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'); //irgendein Zeichen halt...
  //Datensätze eintragen... z.B.:
  List[0]:='XXXX'+'MaierMüllerWasWeißIchWas'+'XX...X' {Rest-X'e});
  List.SaveToFile('C:\Datensätze.dat'//oder halt txt oder was auch immer...
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 Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 219

Win NT, Win 2000
D6 Prof
BeitragVerfasst: 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:

ausblenden 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
Luckie
Ehemaliges Mitglied
Erhaltene Danke: 1



BeitragVerfasst: Di 02.09.03 09:14 
Datensätze, Datei, keine DB. Das klingt für mich nach typisierten Dateien.
barfuesser
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 324



BeitragVerfasst: 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:
ausblenden 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