Einzelnen Beitrag anzeigen

Muetze1
(Gast)

n/a Beiträge
 
#6

Re: strings per filestream in datei speichern/laden

  Alt 11. Jan 2005, 18:18
Moin!

Zitat von Pseudemys Nelsoni:
hallo mütze,

ich hab das beim spoeichern nun so:

Delphi-Quellcode:
procedure TServerBanList.Save(const FileName: string);
begin
  ... sieht so ok aus wie dargestellt ...
end;
nun bekomm ich aber immernoch nichts angezeigt wenn ich es wieder lade
Hast du das Laden auch abgeändert? Also Stringlänge vorher gesetzt und beim Laden [1] angegeben? Woher weisst du wieviele Zeichen du laden musst? Schon alleine eine IP Folge von 123.123.123.3 23.123.123.123 kann beim lesen einmal wie ebend geschrieben ausgelesen werden, genauso aber auch als 123.123.123.32 und 3.123.123.123 und daher ist die Frage der Länge wichtig. Daneben ist das mit 4x 1 Byte sicher.

Zitat von Pseudemys Nelsoni:
Zitat von Muetze1:
Dann noch eine Frage: warum speicherst du das als String? Warum nicht einfach 4x 1 Byte? Vor allem hast du bei 4x1 Byte nicht das Problem zu überlegen ob es nun weniger als 16 Byte sind oder nicht - vor allem - wie kommst du auf 16 Byte?
wenn ich es nicht als string speicher sondern in 4 byte aufteile, muss ich das ganze ja noch parsen, macht das das ganze nicht langsamer?
Warum verwaltest du es als String? Ein TCustomWinSocket hält die IP Adressen auch ordentlich wie bei den Socket bereit als 4 einzelne Bytes (Addr und RemoteAddr, Type TSocketAddrIn) und diese Klasse nutzen TServerSocket und TClientSocket. Daher ist es eine Frage der Verarbeitung - wenn du dir einen String nimmst und mit dem arbeitest, dann hast du dies Problem, ja. Wenn du dir die "richtigen" "rohen" unverarbeiteten Daten holst, dann hast du kein Problem, vor allem ist es einfach aus 4x 1 Byte eine IP Adresse in der Form von aaa.bbb.ccc.ddd zu bekommen mit IntToStr() (User readable).

Zitat von Pseudemys Nelsoni:
ich meine 16 byte, weil die ip selbst bis zu 15byte sein kann (z.b 255.255.255.255 = 15 zeichen) +1 byte für die laengenangabe des strings
Ok, mit dem Längenbyte sollten sich die Bedenken die ich zuvor noch geäussert hatte erledigt haben...

MfG
Muetze1
  Mit Zitat antworten Zitat