Results 1 to 11 of 11

Thread: Array of bytes omzetten naar geldige string

  1. #1
    Very strange member
    Join Date
    Jul 2001
    Location
    Don't know...
    Posts
    264

    Array of bytes omzetten naar geldige string

    Goeiemorgen,

    Bij het zelf maken van een AFP bestand (bytes, ebcdic code enz) is het nodig dat ik alle data omzet naar een array van bytes. Zodra ik deze volledig gevuld heb kan ik de array wegschrijven naar een bestand om zo een AFP bestand te creeeren. Dit gaat allemaal goed.

    Volgende wat ik eigenlijk wil is de AFP code niet wegschrijven naar een bestand maar opslaan in een database. Echter, als ik alle posities van de array, de bytes, omzet naar karakters en deze toevoeg aan een string, dan zitten hier ook niet leesbare karakters bij. Het opbouwen van de string gaat wel goed, maar als ik deze string vervolgens mee geef als input van een query dan gaat het echter niet goed. Zodra hij dan een niet leesbaar karakter ziet dan ziet hij dit meteen als het einde van de query (het einde van de string) en gaat het uitvoeren van de query dus niet goed.

    Wie weet hoe ik deze array van bytes wel goed naar een string kan omzetten om zo deze string in een database te plaatsen.
    Learning is easy................if you believe in it................

  2. #2
    Senior Member Beertje's Avatar
    Join Date
    Oct 2003
    Location
    Eindhoven
    Posts
    114
    als je er char 0 dus #0 of byte = 0 tussen hebt kun je het nooit als goede string opslaan. maar het is dat #0 niet te zien is in een string dus loop die string langs en pak alleen de karakters groter dan 0. #0 betekend in PChars namelijk het einde

  3. #3
    Very strange member
    Join Date
    Jul 2001
    Location
    Don't know...
    Posts
    264
    Yep, ik snap het, maar als ik die #0's eruit sloop en opsla in een database, en een volgende keer de string opvraag uit de database dan heb ik geen geldige structuur van m'n AFP bestand meer, en ik weet ook niet waar m'n #0's dan weer ingevoegd moeten worden...
    Learning is easy................if you believe in it................

  4. #4
    Misschien een beetje omslachtig maar goed.
    Maak een filestream aan
    stop de string in de stream.
    Sla de stream op in de database als blob

  5. #5
    Very strange member
    Join Date
    Jul 2001
    Location
    Don't know...
    Posts
    264
    De stream als object opslaan in de database??? Maar hoe definieer ik m'n query dan??? Zoiets als dit:

    query := 'insert into afpfiles (data) values (' + filestream + ')';

    Is dat mogelijk???
    Learning is easy................if you believe in it................

  6. #6
    Je kan het doen via de normale TFields met een Blob Stream. Of je het ook in een pure query kan doen hangt af van je DBMS.
    We adore chaos because we like to restore order - M.C. Escher

  7. #7
    Very strange member
    Join Date
    Jul 2001
    Location
    Don't know...
    Posts
    264
    Ik gebruik een MySQL database en maak connectie via dbExpress...
    Learning is easy................if you believe in it................

  8. #8
    Dan moet je even kijken in de documentatie van MySQL hoe je dat kan doen in een query string
    We adore chaos because we like to restore order - M.C. Escher

  9. #9
    Senior Member
    Join Date
    Sep 2003
    Location
    Beuningen
    Posts
    1,207
    In hoeverre kan StrPCopy jou niet helpen met deze situatie???
    In theorie werkt alles maar hoe maak je het dan waar, in de praktijk werkt het maar niemand weet waarom.

  10. #10
    Very strange member
    Join Date
    Jul 2001
    Location
    Don't know...
    Posts
    264
    Zie boven...

    Maar ik zal het voorbeeld wat te vinden is op de volgende site 's proberen:
    http://www.elists.org/pipermail/delp...ne/007036.html

    Hierbij is memory een blobstream, misschien dat ik er zo kom...
    Learning is easy................if you believe in it................

  11. #11
    Very strange member
    Join Date
    Jul 2001
    Location
    Don't know...
    Posts
    264
    Ja, ik heb 'm...

    Hier een test voorbeeldje:

    Code:
    var
          sqlQuery : TSQLQuery;
          buf : array[1..10] of byte;
    begin
          buf[1] := $56;
          buf[2] := $56;
          buf[3] := $00;
          buf[4] := $56;
          buf[5] := $56;
          buf[6] := $56;
          buf[7] := $56;
          buf[8] := $56;
          buf[9] := $56;
          buf[10] := $56;
    
          sqlQuery.SQL.Add('INSERT INTO afpfile (data) VALUES (:data)');
          sqlQuery.ParamByName('data').SetBlobData(@buf, 10);
          sqlQuery.ExecSQL;
    end;
    Lord Larry, bedankt voor je aanwijzing over die blobstream!!!
    Learning is easy................if you believe in it................

Thread Information

Users Browsing this Thread

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

Similar Threads

  1. Version Information opvragen
    By Richard in forum Algemeen
    Replies: 13
    Last Post: 11-Dec-05, 23:06
  2. Array naar stream schrijven
    By MaartenV in forum Algemeen
    Replies: 12
    Last Post: 14-Feb-04, 21:04
  3. van Char array naar string
    By microchip in forum Algemeen
    Replies: 4
    Last Post: 26-Oct-03, 16:27
  4. Grote integers?
    By Tharkis in forum Algemeen
    Replies: 6
    Last Post: 09-Jun-03, 18:52
  5. Sreensaver
    By Lynx in forum Algemeen
    Replies: 9
    Last Post: 14-Jul-01, 22:39

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
  •