AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Sprachen und Entwicklungsumgebungen Object-Pascal / Delphi-Language Delphi Ein Element eines Records geht beim Speichen verloren ??
Thema durchsuchen
Ansicht
Themen-Optionen

Ein Element eines Records geht beim Speichen verloren ??

Ein Thema von Nikolas · begonnen am 3. Aug 2004 · letzter Beitrag vom 4. Aug 2004
Antwort Antwort
Benutzerbild von Nikolas
Nikolas

Registriert seit: 28. Jul 2003
1.528 Beiträge
 
Delphi 2005 Personal
 
#1

Ein Element eines Records geht beim Speichen verloren ??

  Alt 3. Aug 2004, 23:24
Also ich hätt da mal gern ein Problem: Ich habe ein Record
Delphi-Quellcode:
Rentry = record
 caption: string[255]; // Beschreibung auf dem Button
 pfad : string[255]; // Pfad der Anwendung
 img : string[255]; // Pfad der Bildes auf dem Button
end;
das ich so speicher:write(dat,list[i]); wobei dat als file of Rentry und list als array of Rentry deklariert ist. Die ersten beiden werte werden gespeichert und können auch Fehlerfrei gelesen werden. Nur img wird nicht gespeichert.
Hat da jemand eine zündende Idee?
Erwarte das Beste und bereite dich auf das Schlimmste vor.
  Mit Zitat antworten Zitat
Benutzerbild von nailor
nailor

Registriert seit: 12. Dez 2002
Ort: Karlsruhe
1.989 Beiträge
 
#2

Re: Ein Element eines Records geht beim Speichen verloren ??

  Alt 3. Aug 2004, 23:26
so direkt mit den paar angaben nicht. was wird denn in image reingespeichert? das richtige?
Michael N.
http://nailor.devzero.de/code/sharpmath/testing/ --- Tests, Feedback, Anregungen, ... aller Art sehr willkommen!
::: don't try so hard - it'll happen for a reason :::
  Mit Zitat antworten Zitat
Benutzerbild von Nikolas
Nikolas

Registriert seit: 28. Jul 2003
1.528 Beiträge
 
Delphi 2005 Personal
 
#3

Re: Ein Element eines Records geht beim Speichen verloren ??

  Alt 3. Aug 2004, 23:33
Alle werte sind belegt, ich hab das direkt vor der Zeilt mit dem Speichern überprüftshowmessage('Pfad: '+list[i].pfad+#10+'Caption: '+list[i].caption... Da wird genau das angezeigt, was ich in der Datei drinhaben will. Nur nachher wenn ich die Datei wieder lese, sind die ersten beiden Einträge perfekt übernommen, nur der letzte String fehlt.
Erwarte das Beste und bereite dich auf das Schlimmste vor.
  Mit Zitat antworten Zitat
Christian Seehase
(Co-Admin)

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

Re: Ein Element eines Records geht beim Speichen verloren ??

  Alt 3. Aug 2004, 23:37
Moin Toxman,

hast Du Dir die Datei mal in einem (Hex)Editor angesehen?
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
Benutzerbild von Nikolas
Nikolas

Registriert seit: 28. Jul 2003
1.528 Beiträge
 
Delphi 2005 Personal
 
#5

Re: Ein Element eines Records geht beim Speichen verloren ??

  Alt 3. Aug 2004, 23:47
Ich nehm dafür den Filealyser. Doch da werden manchmal nur die Pfad-Strings gefunden und die Caption-Strings nicht obwohl sie nachher korrekt ausgelesen werden. Im normalen Editor ist fast alles unlesbar, der hat mich also auch nicht weiter gebracht.
Erwarte das Beste und bereite dich auf das Schlimmste vor.
  Mit Zitat antworten Zitat
Phantom1

Registriert seit: 20. Jun 2003
282 Beiträge
 
Delphi 10.4 Sydney
 
#6

Re: Ein Element eines Records geht beim Speichen verloren ??

  Alt 4. Aug 2004, 07:51
Bei typisierten Dateien sollte man immer Packed Record verwenden:

Delphi-Quellcode:
Rentry = packed record
  caption: string[255]; // Beschreibung auf dem Button
  pfad : string[255]; // Pfad der Anwendung
  img : string[255]; // Pfad der Bildes auf dem Button
end;
  Mit Zitat antworten Zitat
Benutzerbild von Nikolas
Nikolas

Registriert seit: 28. Jul 2003
1.528 Beiträge
 
Delphi 2005 Personal
 
#7

Re: Ein Element eines Records geht beim Speichen verloren ??

  Alt 4. Aug 2004, 22:34
Ich hab's jetzt auch mal mit einem Packed record versucht; geändert hat es allerdings nicht. Auch wenn ich statt in .txt in .abc oder sonstwas speicher, werden die ersten beiden Strings gespeichert, der letzt geht aber verschütt.
Erwarte das Beste und bereite dich auf das Schlimmste vor.
  Mit Zitat antworten Zitat
Brüggendiek

Registriert seit: 13. Dez 2002
Ort: Dortmund
275 Beiträge
 
Delphi 5 Standard
 
#8

Re: Ein Element eines Records geht beim Speichen verloren ??

  Alt 4. Aug 2004, 22:53
Hallo Toxman!

Prüfe doch mal nach, wie groß die Datei auf der Platte ist. Dazu solltest Du natürlich auch wissen, wieviele Einträge da drin sind. Das sollten 768 Bytes pro Eintrag sein - ShortStrings belegen 1 Byte mehr als die Längenangabe. Ein Ansehen der Datei z.B. mit Notepad zeigt oft auch erstaunliche Ergebnisse!

Kann es sein, daß Du die Datei mal mit einer anderen Record-Größe erstellt hast und dann noch einen String in den Record gepackt?

Vielleicht hat die Lese-Routine ja auch einen anderen Record (ohne den letzten String), passiert leicht, wenn das in verschiedenen Units oder Klassen liegt.

Ansonsten sehe ich in dem geposteten Code keinen Fehler.

Gruß

Dietmar Brüggendiek
Dietmar Brüggendiek
  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 03:02 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