AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

String mit 0 Bytes als Datei Speichern

Ein Thema von Shark99 · begonnen am 27. Jan 2013 · letzter Beitrag vom 28. Jan 2013
Antwort Antwort
terence14
(Gast)

n/a Beiträge
 
#1

AW: String mit 0 Bytes als Datei Speichern

  Alt 27. Jan 2013, 08:44
Willst Du nur einen Leerstring speichern oder
ein myStringList.Text Feld?

MfG,
terence

PS: Speichert nun einen LeerString mit fester Größe ab!

Delphi-Quellcode:

var F : File;
    meinString : string[255];
...
meinString:=Trim(myString);
AssignFile(F, 'c:\myfile.bin');
ReWrite(F, 1);
BlockWrite(F, meinString, SizeOf(meinString));
CloseFile(F);

Geändert von terence14 (27. Jan 2013 um 08:48 Uhr)
  Mit Zitat antworten Zitat
Christian Seehase
(Co-Admin)

Registriert seit: 29. Mai 2002
Ort: Hamburg
11.124 Beiträge
 
Delphi 11 Alexandria
 
#2

AW: String mit 0 Bytes als Datei Speichern

  Alt 27. Jan 2013, 09:01
Moin Shark,

um strings auch in C-Funktionen als PChar nutzen zu können, wird #00 bei entsprechenden Operationen auch als Ende eines Strings verarbeitet.
Um einen String der binäre Nullen enthält speichern zu können, solltest Du TFileStream benutzen:

Delphi-Quellcode:
var
  fs : TFileStream;
  myString : string;

begin
  myString := StringOfChar(#00,5);
  fs := TFileStream.Create(<Pfad zur Datei>,fmCreate);
  try
    fs.Write(myString[1],Length(myString));
  finally
    fs.Free;
  end;
end;
Tschüss Chris
Die drei Feinde des Programmierers: Sonne, Frischluft und dieses unerträgliche Gebrüll der Vögel.
Der Klügere gibt solange nach bis er der Dumme ist
  Mit Zitat antworten Zitat
Shark99

Registriert seit: 16. Mai 2007
403 Beiträge
 
#3

AW: String mit 0 Bytes als Datei Speichern

  Alt 27. Jan 2013, 20:22
Es würde mich rein technisch interessieren, wieso ein String mit dem Inhalt #0#65 nicht zu StringList.Text zugewiesen werden kann. Da StringList.Text ja auch ein Delphi String ist, sollte doch #0 als Inhalt möglich sein.
  Mit Zitat antworten Zitat
Popov
(Gast)

n/a Beiträge
 
#4

AW: String mit 0 Bytes als Datei Speichern

  Alt 27. Jan 2013, 22:33
Das ist die Prozedur die aufgerufen wird wenn ein String eine TStrings.Text zugeweisen wird:

Delphi-Quellcode:
procedure TStrings.SetTextStr(const Value: string);
var
  P, Start: PChar;
  S: string;
begin
  BeginUpdate;
  try
    Clear;
    P := Pointer(Value);
    if P <> nil then
      while P^ <> #0 do
      begin
        Start := P;
        while not (P^ in [#0, #10, #13]) do Inc(P);
        SetString(S, Start, P - Start);
        Add(S);
        if P^ = #13 then Inc(P);
        if P^ = #10 then Inc(P);
      end;
  finally
    EndUpdate;
  end;
end;
//Edit

Evtl. eine Deutung: bei #0 ist Schluß mit String, da steigt die Routine raus.

Geändert von Popov (27. Jan 2013 um 22:48 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.665 Beiträge
 
Delphi 12 Athens
 
#5

AW: String mit 0 Bytes als Datei Speichern

  Alt 28. Jan 2013, 06:56
Wieso heißt das wohl "nullterminierter String"?
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 19: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