AGB  ·  Datenschutz  ·  Impressum  







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

Denkanstösse, tolerantes Lesen

Ein Thema von Daniel B · begonnen am 18. Nov 2002 · letzter Beitrag vom 19. Nov 2002
Antwort Antwort
Daniel B
(Gast)

n/a Beiträge
 
#1

Denkanstösse, tolerantes Lesen

  Alt 18. Nov 2002, 17:52
Hallöchen,

ich brauche ein paar Denkanstösse.
Ich lese Daten aus einer Datei in eine Stringlist und dann teile ich allen in Records/Arrays auf. Soweit noch oki.
Diese Daten stammen von einer externen Hardware. Die natürlich, verschiedene Software-Versionen hat. Je höher die Version, desto mehr neue sachen sind in diesen "Datensätzen", also diese Dateien die ich dan bekomme zum bearbeiten.

Hier mal ein kleines Beispiel:
Code:
      Lok(
        ID: 8
        Name: Dampfl.108
        Adr: 8
        Masse: 2
      )
Je nachdem wie hoch die Version ist, gibt es in diesem Datensatz noch andere Zeilen.

Beispiel:
Code:
      Lok(
        ID: 8
        Name: Dampfl.108
        Adr: 8
        Masse: 2
        MasseFaktorBeschl: 3
        MasseFaktorBrems: 2
      )
Das heisst, bei zukünftigen Versionen, können noch mehr sachen drin stehen.
Beim einlesen dieser Lok-Datensätze, läuft immer ein Zähler mit. Ich müsste jetzt also diese Zeilen einlesen und speichern, jedoch kann sie mein Programm noch nicht bearbeiten. Je nach Version.
Ich brauche jetzt ein paar Ideen, wie man solche Probleme löst.
Dachte an einem zusätzlichen Array, der nur diese Zeilen enthält und aufgrund der Zähler, müsste ich die Zeilen wieder an die richtigen Stellen wieder einfügen.
Vielleicht habt Ihr noch Ideen wie man sowas überliest, bzw. speichert und an den richtigen Stellen wieder einfügt.
Vielen Dank.

Grüsse, Daniel
  Mit Zitat antworten Zitat
Christian Seehase
(Co-Admin)

Registriert seit: 29. Mai 2002
Ort: Hamburg
11.116 Beiträge
 
Delphi 11 Alexandria
 
#2
  Alt 18. Nov 2002, 17:56
Moin Daniel,

ich finde, dass es sich in so einem Falle empfiehlt, der Datei als ersten Satz einen Kennsatz zu verpassen, der dann die Version der Datei enthält.
So könnte ein Programm leicht feststellen, ob es das Format unterstützt oder nicht.
Der Einfachheit halber sollte das Satzformat nur am Ende erweitert werden, so dass aktuellere Programmversionen immer auch ältere Dateien verarbeiten können.
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
Daniel B
(Gast)

n/a Beiträge
 
#3
  Alt 18. Nov 2002, 18:07
Hallo Christian,

auf die Datei habe ich keinen Einfluss. Die kommt so aus diesem Gerät. Und ich muss die Datei bearbeiten und der Version entsprechend wieder schreiben. Schreibe ich nun zuviel oder zuwenig in diese Datei, so kann sich das Gerät zwar nciht aufhängen, aber die Daten die noch in dem Gerät drin sind, werden gelöscht.
Es würde mir also ncihts bringen, wenn ich eine Versionsinformation hätte. Ich habe soeben mit dem Entwickler gesprochen. Es wäre kein Problem diess noch einzufügen, das bringt mir aber nur für neue Versionen was und nicht für aktuelle, oder alte, da bin ich und er machtlos.

Grüsse, DAniel
  Mit Zitat antworten Zitat
Christian Seehase
(Co-Admin)

Registriert seit: 29. Mai 2002
Ort: Hamburg
11.116 Beiträge
 
Delphi 11 Alexandria
 
#4
  Alt 18. Nov 2002, 18:47
Moin Daniel,

Du könntest dann höchstens feststellen, dass die Datei keine Kennung hat und Dein Programm daraufhin anpassen.
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
wwerner

Registriert seit: 5. Aug 2002
18 Beiträge
 
#5
  Alt 19. Nov 2002, 06:43
Kannst du dir nicht anhand von bestimmten Schlüsselwörtern selbst eine Versionsnummer erzeugen? und wenn du die Version erkannt hast, weist du wie sie gelesen und geschrieben werden muß.


Gruß

Wolfgang
  Mit Zitat antworten Zitat
Daniel B
(Gast)

n/a Beiträge
 
#6
  Alt 19. Nov 2002, 08:17
Hi,

im mom. lese ich alles Zeilenweise aus. Zuerst in eine SL, dann wird erstmal alles Acsii to Ansi Konvertiert und wenn lese ich in der SL Zeile für Zeile und verteile schon bei jeder Zeile schon alles ins richtige Record/Array. Ich müsste so ne Art Ki machen, die sich zuerst die Datei mal durchliest und dann mir sagt welche Version das ist. Hmm... Ein anderes Problem. Wie soll ich den rausfinden, welche Version wie was gemacht hat? Dazu müsste man sich die Quellcodes des Gerätes anschauen, das sind zig tausende Zeilen, in C!, und dabei jede kleinigkeit rausfiseln um zu wissen was die V1.2 gemacht hat, oder die 1.64 usw. Wäre doch recht aufwendig.

Grüsse, Daniel
  Mit Zitat antworten Zitat
Christian Seehase
(Co-Admin)

Registriert seit: 29. Mai 2002
Ort: Hamburg
11.116 Beiträge
 
Delphi 11 Alexandria
 
#7
  Alt 19. Nov 2002, 17:02
Moin Daniel B,

ist denn nicht dokumentiert, welche Version welches Dateiformat hat?
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
Daniel B
(Gast)

n/a Beiträge
 
#8
  Alt 19. Nov 2002, 17:37
Hallo Christian,

ist es bestimmt. Hab heute nicht dran gedacht nachzusehen. Aber ich bin zu dem Entschluss gekommen, nachdem ich mich heute 1 1/2 Stunden mit unseren Softi darüber unterhalten habe, in der ReadMe zu schreiben, dass das fehlerfreie benutzen, nur ab V1.64 möglich ist. Aufgrund der Bugs & Features, sollte sowieso mind. V1.64 installiert sein. Somit hab ich keine Probleme mit den nächsten Versionen und es wäre ein anreiz für manche Leute endlich mal upzudaten.
Ich nehme es auch in kauf, das von 100 Usern, 3 deswegen verärgert sind. Aber wer mit den alten Verisonen noch spielt, ist eh selbst Schuld. Die updates gibt es immer im Netz, oder mann sie jederzeit Bestellen, oder sich zuschicken lassen. Höhere Versionen kann ich ja schon bereits be-/verarbeiten.

Grüsse, Daniel
  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:33 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