Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi Satz in Datei schreiben ohne Satzende (CR+LF)? (https://www.delphipraxis.net/27107-satz-datei-schreiben-ohne-satzende-cr-lf.html)

oltrop 4. Aug 2004 11:18


Satz in Datei schreiben ohne Satzende (CR+LF)?
 
Hallo Leute,

ich muss eine Auftragsdatei mit einem Satz schreiben.
Dieser Satz hat genau 348 Stellen und darf kein Satzende haben.
Kein 0D 0A (CR+LF);

Wie mach ich das am besten?

Gruß aus Ostfriesland
Christian

Nalincah 4. Aug 2004 11:26

Re: Satz in Datei schreiben ohne Satzende (CR+LF)?
 
Mit nem FileStream

Delphi-Quellcode:
var
  FS:TFileStream
  s : string;
begin
  FS := TFileStream.Create('DATEINAME',fmCreate);
  try
    s := 'DEIN SATZ';
    FS.Write(s[1],348);
  finally
    FS.Free;
  end;
end;
s[1] sagt aus: Der String wird vom Ersten Zeichen an reingeschrieben. Einfach nur "s" würd die Länge des String auch mit reinschreiben
DATEINAME ist der komplette Pfad (z.B. 'C:\test.txt') und DEIN SATZ ist...Dein Satz :spin:

Die Gesamtlänge ist 348

franktron 4. Aug 2004 11:27

Re: Satz in Datei schreiben ohne Satzende (CR+LF)?
 
z.b. so

Delphi-Quellcode:
type
  //Nur ein bsp. man kann auch ein Longstring nehemen
  TBuffer = record
    text1   : String[255];
    text2   : string[93];
  end;
var
  stream : TFileStream;
  buffer : TBuffer;
begin
  stream:=TFileStream.Create('test.txt');
  try
    buffer.text1:='text';
    buffer.text2:='text2';
    stream.Write(buffer,SizeOf(TBuffer));
  finally
   stream.Free;
  end;
end;

Nalincah 4. Aug 2004 11:44

Re: Satz in Datei schreiben ohne Satzende (CR+LF)?
 
Zitat:

Zitat von franktron
z.b. so

Delphi-Quellcode:
type
  //Nur ein bsp. man kann auch ein Longstring nehemen
  TBuffer = record
    text1   : String[255];
    text2   : string[93];
  end;
var
  stream : TFileStream;
  buffer : TBuffer;
begin
  stream:=TFileStream.Create('test.txt');
  try
    buffer.text1:='text';
    buffer.text2:='text2';
    stream.Write(buffer,SizeOf(TBuffer));
  finally
   stream.Free;
  end;
end;

Im Prinzip das gleich wie meins, nur bei dir wird das erste Byte mit der Länge des Strings besetzt. Das heißt die Datei wär 349 Bytes groß, anstatt 348

ripper8472 4. Aug 2004 11:57

Re: Satz in Datei schreiben ohne Satzende (CR+LF)?
 
Code:
var
  f:textfile;
  deintext:string;
begin
  assignfile(f,'datei.txt');
  rewrite(f);
  write(f,deintext);
  closefile(f);
end;
das ist nativer Pascal Code für Dateizugriff. Der funkioniert auch ohne Streams und auch im alten Turbo Pascal 7 für DOS.

[edit] der [ delphi ] tag ging nicht
Gruß

oltrop 4. Aug 2004 13:26

Danke euch beiden!
 
:hi: Danke!!


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