Results 1 to 10 of 10

Thread: Reacties op artikel 'TEMDDataSet'

  1. #1

    Reacties op artikel 'TEMDDataSet'

    Iedere zichzelf respecterende NLDelphi bezoeker heeft natuurlijk het artikel van Jos Visser gelezen over het maken van een TDataset afgeleide, de TbigInifileDataset. In dat artikel laat Jos zien hoe een ini-bestand te gebruiken is met behulp van een TDataset-afgeleide.

    Waar Jos gestopt is, ga ik verder. Dit artikel is namelijk te zien als een aanvulling op Jos' artikel. Het eerste gedeelte is deels een stukje herhaling in vogelvlucht, weliswaar met een andere bestandsindeling. De rode draad is identiek, aangezien ook mijn artikel een TDataset-afgeleide betreft. Vervolgens laat ik zien hoe de TDataset-afgeleide aangevuld kan worden om gegevens te kunnen wijzigen, toevoegen en verwijderen.

    Lees het artikel...

    ...of reageer op dit artikel als reply op deze thread.
    Marcel

  2. #2
    Zo vaak m'n naam in een artikel, dat voelt wel als een flinke pluim in m'n k*nt

    Mooi artikel. Volgens mij zit er wel flink wat uitzoekwerk in. Het zou wel netjes zijn als je strings (zoals in exception messages) in resourcestrings zou stoppen. Dat maakt ze ook vertaalbaar met de vertaaltools van Delphi.

    Ik ben voornemens om ooit, als ik tijd heb, mijn TbigInifileDataset schrijfbaar te maken, en dit artikel gaat me daar zeker bij helpen.
    1+1=b

  3. #3
    Die beoordeling was gebaseerd op het orgineel dat ik eerder heb mogen ontvangen. Bij het plaatsen van het artikel heb ik helaas wat foutjes gemaakt in de code-conversie, waardoor de code een rommeltje is geworden en er delen ontbraken. Mijn nederige excuses hiervoor.

    Mensen die het artikel eerder vandaag hebben gelezen: de code is inmiddels gecorrigeerd, dus probeer het nog eens.
    1+1=b

  4. #4
    Goed artikel! Vooral ook erg mooi om te zien dat er toch nog heel wat komt kijken bij "even een eigen dataset implementeren". Dan is een artikel naast de code toch wel erg lekker!

    Heb je er ook aan gedacht om het XML deel met een XMLDocument in te lezen, of was dat niet handig?
    Marcel

  5. #5
    senior member PeterVercruysse's Avatar
    Join Date
    Nov 2006
    Location
    Rijsel
    Posts
    1,608
    Een mooi artikel inderdaad.

    Datasets worden waarschijnlijk veruit door iedereen hier gebruikt, er zijn er in principe maar weinig die de TDataset op zich al eens grondig bekeken hebben. En veel documentatie is er niet te vinden van hoe je zelf zo'n dataset-afgeleide moet samenknutselen.
    Gras groeit niet sneller door er aan te trekken

  6. #6
    Bedankt voor alle reacties. Ik ben blij dat jullie het een mooi en goed artikel vinden !!!

    @Marcel
    Inlezen met XMLDocument zou inderdaad een optie zijn. Ik had toevallig nog wat code liggen om xml-bestanden in te lezen. Ik heb die code zelf geschreven, en een eigen kindje stop je niet snel weg als het goed werkt.

    Ik geloof wel dat de encoding in mijn header niet helemaal xml-compatible is, maar dat is een kleine aanpassing in de code.

  7. #7
    Voor gebruik in Delphi 2009 zijn enkele lichte aanpassingen nodig:

    De procedures
    GetBookmarkData(Buffer: PChar; Data: Pointer); override;
    en
    SetBookmarkData(Buffer: PChar; Data: Pointer); override;
    kunnen worden verwijderd.

    In onderstaande functies en procedures moet PChar worden vervangen door TRecordBuffer:
    procedure InternalSetToRecord(Buffer: PChar); override;
    function AllocRecordBuffer: PChar; override;
    function GetRecord(Buffer: PChar; GetMode: TGetMode; DoCheck: Boolean): TGetResult; override;
    function GetBookmarkFlag(Buffer: PChar): TBookmarkFlag; override;
    procedure SetBookmarkFlag(Buffer: PChar; Value: TBookmarkFlag); override;
    procedure FreeRecordBuffer(var Buffer: PChar); override;
    procedure InternalInitRecord(Buffer: PChar); override;

  8. #8
    Zeer goed artikel, slechts 1 opmerking. In je code heb je het volgende staan:
    delphi Code:
    1. CKOLOM_PREFIX = '<k';
    2.   CKOLOMNAAM_PREFIX = ' name="';
    3.   CKOLOMTYPE_PREFIX = '" type="';
    4.   CKOLOM_SUFFIX = '"/>';
    Door deze opmaak kun je problemen krijgen als mensen die indeling anders hebben staan. Stel ikben eigenwijs en typ die regels met eerst type en dan naam. Dan werkt het niet meer....
    Check out ackspace.nl for a dutch hackerspace

  9. #9
    Stel ikben eigenwijs en typ die regels met eerst type en dan naam.
    Dat is volgens mij niet eigenwijs, maar niet begrijpen waar je mee bezig bent.

  10. #10
    Dat de layout van de regel lijkt op XML wil niet zeggen dat alles wat met XML mogelijk is, ook mogelijk is in mijn zelf gedefinieerde bestandsindeling en vica versa. Op het moment dat de indeling veranderd, is het de bedoeling dat de source-code voor lezen en wegschrijven wordt aangepast, op een dergelijke wijze dat de oude versie foutloos geconverteerd kan worden naar een nieuwe versie. Het is niet de bedoeling om het bestand handmatig te wijzigen. Ik sluit bijvoorbeeld niet uit dat een toekomstige versie alles gecodeerd wegschrijft. Er staat nergens dat ik in mijn code rekening moet houden met omgekeerde velden, omdat de procedure die het bestand wegschrijft exact dezelfde volgorde hanteerd.

    Ander voorbeeld
    Ik zou zomaar een bestandsformaat kunnen gebruiken om afbeeldingen weg te schrijven. Ik maak gebruik van een indeling die LIJKT op bmp. Enige verschil is dat ik kleuren opsla in BRG ipv RGB. als ik een bestand inlees in paint, zie ik wel mijn afbeelding, maar kloppen de kleuren niet meer. Dit wil niet zeggen dat mijn bestandsformaat verkeerd is, want als ik mijn bestand inlees in mijn eigen programma zijn de kleuren wel goed. Het is overigens wel handig om de bestandsextensie te wijzigen, en de codering dat het om een BMP-bestand gaat (1e 2 bytes) aan te passen.
    Last edited by Casper10031982; 09-Mar-09 at 07:54. Reason: typo

Thread Information

Users Browsing this Thread

There are currently 1 users browsing this thread. (0 members and 1 guests)

Bookmarks

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •