AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Sprachen und Entwicklungsumgebungen Object-Pascal / Delphi-Language Delphi Wie kann ich einen Record in eine Datei schreiben/lesen
Thema durchsuchen
Ansicht
Themen-Optionen

Wie kann ich einen Record in eine Datei schreiben/lesen

Ein Thema von martin7452 · begonnen am 4. Sep 2004 · letzter Beitrag vom 5. Sep 2004
Antwort Antwort
Seite 2 von 2     12   
mytar

Registriert seit: 30. Mai 2004
Ort: Zermatt
411 Beiträge
 
Delphi 6 Enterprise
 
#11

Re: Wie kann ich einen Record in eine Datei schreiben/lesen

  Alt 4. Sep 2004, 20:08
Ich denke Elite hat recht, hatte damit auch schon ziemliche Probleme!

Um spezielle Strukturen in einen Stream zu speichern,
gibt es Delphi-Referenz durchsuchenTWriter und Delphi-Referenz durchsuchenTReader!
Francis Obikwelu
greetz
mytar
  Mit Zitat antworten Zitat
bigg
(Gast)

n/a Beiträge
 
#12

Re: Wie kann ich einen Record in eine Datei schreiben/lesen

  Alt 4. Sep 2004, 20:09
n'abend,

strings in char umwandlen... ?
da strings nur pointer sind... ?


mein magen.

Also erstmal sind Pointer Zeiger.
Diese zeigen auf eine vorher festgelegte Adresse im Speicher.

Ein Char, also ein einzelnes Zeichen ist ja bekanntlich ein Byte groß.
Ein String besteht aus einem bzw. mehrenen Chars. Ein String ist also nicht's
weiteres als ein "Array of Char", somit entfällt hier im Prinzip eine Umwandlung.
Mit Ausnahme Ascii-Zeichen: #0 definiert das Ende eines Delphi-Strings daher sollte man
D-Strings nach Pchar() konvertieren.
  Mit Zitat antworten Zitat
Snoop007

Registriert seit: 15. Jan 2003
331 Beiträge
 
Delphi 6 Personal
 
#13

Re: Wie kann ich einen Record in eine Datei schreiben/lesen

  Alt 4. Sep 2004, 20:28
ich hatte auch versucht "überlange" (> 255 zeichen ) strings zu speichern
BlockWrite / BlockRead
und wieder vernümpftig auszulesen, ging leider nicht
bis ich den umweg über char gekommen habe
mir ist schon klar das ein string ein array of char ist
nur wenn dieser string mehr zeichen hat sprich grösser als 4 Byte wird, gibs probleme

zumindest bei mir .. ( delphi5 prof )
  Mit Zitat antworten Zitat
martin7452

Registriert seit: 30. Nov 2003
6 Beiträge
 
#14

Re: Wie kann ich einen Record in eine Datei schreiben/lesen

  Alt 4. Sep 2004, 20:52
Hallo,
zuerst mal vielen Dank für die Tip´s,
Habe inzwischen von NET7 den TIP "So speichert man Records in eine Datei und ließt sie wieder aus: "
gefunden und getestet. Der funktioniert super.
Ich finde dieses Foprum echt super.
Gruß Martin
  Mit Zitat antworten Zitat
Snoop007

Registriert seit: 15. Jan 2003
331 Beiträge
 
Delphi 6 Personal
 
#15

Re: Wie kann ich einen Record in eine Datei schreiben/lesen

  Alt 4. Sep 2004, 21:08
und wie gehst du nun mit grossen strings um ?
  Mit Zitat antworten Zitat
Benutzerbild von SirThornberry
SirThornberry
(Moderator)

Registriert seit: 23. Sep 2003
Ort: Bockwen
12.235 Beiträge
 
Delphi 2006 Professional
 
#16

Re: Wie kann ich einen Record in eine Datei schreiben/lesen

  Alt 4. Sep 2004, 22:12
Zitat von bigg:
Mit Ausnahme Ascii-Zeichen: #0 definiert das Ende eines Delphi-Strings daher sollte man
D-Strings nach Pchar() konvertieren.
FALSCH!
ein String in Delphi hat keine Ende markierung. Ein String wird bei Delphi intern als Pointer gehandhabt. So wird auf ein "Array of Char" gezeigt und die Länge ist im 0ten Byte festgehalten wenn ich nicht irre, Strings fangen nicht umsonst mit #0 an. Du kannst selbst probieren einen String zu erzeugen wo mittendrin #0 vorkommt und dann mit "length(String)" die länge ermitteln und dann wirst du sehen das der String nicht bei #0 aufhört. Wenn es um PChar's geht hast du recht, dort wird das Ende durch #0 gekennzeichnet da keine Längeninformation gespeichert wird (PChar's fangen deshalb auch bei Index 0 an)
Jens
Mit Source ist es wie mit Kunst - Hauptsache der Künstler versteht's
  Mit Zitat antworten Zitat
Muetze1
(Gast)

n/a Beiträge
 
#17

Re: Wie kann ich einen Record in eine Datei schreiben/lesen

  Alt 5. Sep 2004, 03:11
Moin!

Auch nicht ganz richtig: Du beschreibst einen ShortString, also die Stringart die auf 255 Zeichen begrenzt ist und zur Kompatibilität mit Pascal vorhanden ist. Ein String ist heutzutage ein AnsiString und der hat vor dem Pointer die Längenangabe und die Grösse des alloziierten Buffers.

MfG
Muetze1
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 2 von 2     12   


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 06:47 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz