![]() |
Typisierte Datei ändern?
Hallo,
ich habe eine typisierte Datei, die auf einem Record aufbaut. Kann ich nun ohne weiteres den Record ändern, oder gibt es da Probleme? Wenn ja, wie kann man diese umgehen? :gruebel: |
Re: Typisierte Datei ändern?
Ich würde mit 2 Dateien arbeiten.
|
Re: Typisierte Datei ändern?
Zitat:
Was hhätte ich als alternative, um den Record speichern zu können, aber bei Änderungen nicht eine neue Datei anlegen zu müssen. :roll: |
Re: Typisierte Datei ändern?
Dann bliebe nur die Alternative, alles in den Speicher zu laden.
|
Re: Typisierte Datei ändern?
Zitat:
|
Re: Typisierte Datei ändern?
DEshalb bleibt dir ja nichts anderes übrig, die datei neu zu schreiben; entweder mit 2 Dateien oder über den Speicher.
|
Re: Typisierte Datei ändern?
Ok, ich glaube ich kann dir folgen. Ich muss also gucken ob die "alte" Datei den aktuellem Format entspricht und ggf. die Daten konvertieren, indem ich die gesamte Datei nue schreibe. :gruebel: Oh man, so ein Mist. Gibt es eine Möglichkeit dem vorzubeugen? Das Kind ist noch nicht ganz in den Brunnen gefallen. :mrgreen:
|
Re: Typisierte Datei ändern?
also, wenn der typ gleich bleibt, kannst du jederzeit deine daten innerhalb deines typs ändern.
daher wird in aller regel, vorgebeugt und ein paar byte reserve im Typ platziert, welcher dann einfach bei bedarf anders belegt werden kann. somit ist keine reorganisation der db erforderlich, falls mal die eine oder andere information hinzukommen sollte. |
Re: Typisierte Datei ändern?
Am besten als erstes einen Format-Header zuerst schreiben... dann weiss dein Prog (egal welche Version) wie es das File weiter zu laden hat. Wenn du dann noch je FileType-Version die Lese-Funktion wählst Bleibt das Prog abwärtskompatibel. Wenn deine Daten bis jetzt keinen Header haben würd ich das für die Zukunft nachrüsten. Wenn ein File noch keinen Header hat wird es einfach wie bisher verarbeitet (ausser dem einen Wert, der ignoriert wird)
greetz |
Re: Typisierte Datei ändern?
Zitat:
Delphi-Quellcode:
TDS = record
Zahl1: Integer; Text1: String[50]; Text2: String[3]; end; Datei: File of TDS; Zitat:
|
Re: Typisierte Datei ändern?
und da machste einfach noch 'n string reserve[200] rein. und schon hat es sich. bei bedarf zählst die byte ab und füllst mit reserve auf, so dass insgesamt der typ die selbe anzahl hat. also, byte -1, word -2, longint -4, etc. pp.
ist halt 'n bytegefriemel... wenn du das vermeiden willst, schnapp dir einfach eine von den vielen SQL DB's die machen das ganze im hintergrund inkl. der tabellenreorganisation... |
Re: Typisierte Datei ändern?
Oder benutzte XML.
|
Re: Typisierte Datei ändern?
uhm... einfach ein paar Bytes die deinem Programm sagen, wie es die datei Zu verarbeiten hat:
Das kann ein einfacher String wie "MeinFile0001" sein oder halt die Binäre Version davon.. Dein Prog prüft dann also zuerst ob ein paasender Header da ist und die Version... wenn du also irgendwann das datenformat änderst erhöhst du den Zähler im Format-Header und schreibst dazu eine neue Lese-Methode. Auf die Art kannst du alte daten immer noch lesen ohne unnötig Platz in der Datei zu vergeuden. In so einen Header könnte zu Prüfzwecken noch die Anzahl und Grösse eines datensatzes zu Prüfzwecken. Noch vor dem Lesen kannst du so entscheiden ob die Datei wirklich korrekt ist. nachteil ist, dass das File of ... nicht mehr geht... allerdings wäre eine Lösung via FileStream nicht arg komplizierter. |
Re: Typisierte Datei ändern?
Das erscheint mir alles ziemlich aufwendig. Ich glaub ich hab auch noch einen anderen Fehler drin, bezüglich typisierte Dateien. :( Naja, habe Erfahrung mit embedded MySQL, aber da will ich nicht ran, weil ich das Projekt als zu klein Einschätze. Mit XML kenne ich mich gar nicht aus, meinst ihr das hat Zukunft? Da werd ich wohl die ganze Sache nochmal überdenken müssen. :stupid: Danke für die Informationen. :thumb:
|
Re: Typisierte Datei ändern?
Wenn du Erfahrungen mit Datenbanken hast, würde ich diese nutzen. So kannst du die Datenstruktur immer problemlos abändern. Der Einsatz von Datenbanken hat imho nichts mit der Projektgröße zu tun.
|
Re: Typisierte Datei ändern?
Hallo
Zitat:
Datei auf XML umstellen. XML - Header Lesen. Falls das nicht geht kannst ja die gleiche Datei versuchen wie bisher binär zu laden. mfg DerDan |
Re: Typisierte Datei ändern?
Ich werde die Datenstruktur genau überdenken und typisierte Dateien benutzen. Sollte es eine Änderung geben werde ich ggf. ein Konvertierungstool schreiben. :) Danke für eure Hilfe!
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 04:50 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