[Delphi] Hoe eigen bestandsformaat ontwikkelen?

Pagina: 1
Acties:
  • 115 views sinds 30-01-2008
  • Reageer

  • klaaz
  • Registratie: April 2000
  • Laatst online: 20-12 22:07

klaaz

it's me!

Topicstarter
Ik ben regelmatig aan het stoeien in Delphi 6. Een van de dingetjes die ik ooit gemaakt heb is ISDNiD, een Capi compatible nummermelder: www.runia.net/isdnid

Nu ben ik bezig met het ontwikkelen van een calculatieprogramma. In dit programma moeten meetwaarden worden opgeslagen per regel. De ingebouwde databasefunctie is hier heel geschikt voor.

Ik wil echter van de totale calculatie ook de basis gegevens opslaan, zoals bijvoorbeeld NAW van de aanvrager, gegevens van het gecalculeerde object etc.

Bestaande software gebaseerd op VisualFoxpro doet dit door een aparte map aan te maken waarin een aantal tabellen en wat andere files worden opgeslagen.

Ik wil dit anders doen door alle gegevens van de totale calculatie in een (1) bestand op te slaan.

In het kort komt het dan hier op neer:
- tabellen / databaseachtige structuur
- NAW gegevens
- Object gegevens
- Memo's
etc. allemaal in een (1) uniek bestandsformaat.

Het wil me echter maar niet lukken. Heeft iemand hier ideeën over / ervaring mee?

Ik wil dus gewoon hanteerbare bestanden, lekker makkelijk te verplaatsen en geen risico dat bij corruptie van een bestand gelijk de gegevens van ALLE calculaties niet meer bruikbaar zijn.

Op de een of andere manier zal ik dan de tabellen (dbf of paradox of plat) moeten porteren naar een plat formaat denk ik.

O ja: indien mogelijk wil ik het formaat zodanig kunnen opslaan dat het bij openen in een editor redelijk onbruikbaar is.

Ik moet hem natuurlijk wel zelf weer kunnen inlezen... >:)

Verwijderd

ehmmm, ik denk dat je daarvoor geen delphi filefuncties voor kan gebruiken. Je zal denk ik een index moeten maken met de posities en grootte van elk deel enzo. Best wel veel werk, maar ik denk de enigste manier... Dan met filepointers alles uitlezen.

De beste manier is denk ik voor elk deel in het bestand een class maken die de data omzet naar "text" en een class die al deze classes bevat een index maakt en alle gegevens daadwerkelijk wegschrijft in een bestand.

  • klaaz
  • Registratie: April 2000
  • Laatst online: 20-12 22:07

klaaz

it's me!

Topicstarter
Het is dus niet raar dat ik er zo niet uit kom. ;)

Heb je misschien ook een voorbeeld code of een tutorial waar ik het van kan leren?

Verwijderd

Ik zal wel ff wat proberen te maken, heb geduld, dit kan wel even duren :)

Verwijderd

Moet je me toch is vertellen waar je versie 6 vandaan hebt :)

Verwijderd

versie 6?? Ik ben nog bezig in (ancient?) delphi 5

  • klaaz
  • Registratie: April 2000
  • Laatst online: 20-12 22:07

klaaz

it's me!

Topicstarter
is ook 5 inderdaad :-)

heb pas leren tellen .... ;-))

Verwijderd

He ik ben net bezig maar het is veeeeeeeeeel simpeler dan ik dacht: |:(

Stap 1) Maak een TFileStream aan

Stap 2) Maak een index aan (alleen maar hoeveelheid records, hoeveelheid memo's bla bla)

Stap 3) Schrijf alle gegevens weg.

Dit alles doe je dan met
FileStream.write( [gegeven zoals een index record], [grootte]);

Lezen vanhet bestand spreekt voor zich lijkt mij...

Ik lees wel hoe het gegaan is, succes

  • klaaz
  • Registratie: April 2000
  • Laatst online: 20-12 22:07

klaaz

it's me!

Topicstarter
Ik ga er even mee aan de slag!

Nog meer?

  • klaaz
  • Registratie: April 2000
  • Laatst online: 20-12 22:07

klaaz

it's me!

Topicstarter
Ik heb hier: www.delphicorner.f9.co.uk/tips/opascal/op11.htm al wat gevonden. Helaas nog niks over de index waar je het over hebt.

Edit: Heb er even mee gestoeid en het werkt. Gewoon Streamen is voldoende. Het is alleen niet zo een twee drie gelukt om database code op deze wijze te saven in de stream. Ik ben hier met een nieuwe topic gestart omdat ik denk dat er wel meer mensen zijn die hier wel eens tegenaan lopen. :)
Pagina: 1