Announcement

Collapse
No announcement yet.

restoring dynamic string array

Collapse
X
 
  • Filter
  • Time
  • Show
Clear All
new posts

  • Chris Holbrook
    replied
    I will post a SQLite example soon if no-one beats me to it...

    Leave a comment:


  • Michael Mattias
    replied
    Y'all don't "PUT hFile, ,data" to a BLOB datatype in a database.

    I have some code here somewhere to do it via ODBC if someone really wants it.

    Leave a comment:


  • John Gleason
    replied
    Just wanted to point out, you can PUT it without even JOINing it and save a line of code:
    Code:
          PUT #1,, strArr() 'blobField       'you put it to your database here

    Leave a comment:


  • Michael Mattias
    replied
    No, I did not mean BINARY. Matter of fact, I had to look up that JOIN$() option, as I was not even aware of its existence.

    But I should have meant it, as it's a lot easier to let the compiler handle all the <length word, data>, <length word, data>... pairs than to do it myself.

    MCM

    Leave a comment:


  • John Gleason
    replied
    Here is an example:
    Code:
    #COMPILE EXE
    #DIM ALL
    
    FUNCTION PBMAIN () AS LONG
       DIM strArr(2) AS STRING
       LOCAL blobField AS STRING, ii AS LONG
       
       KILL "c:\blobFieldTest01.dat"
       OPEN "c:\blobFieldTest01.dat" FOR BINARY AS #1
          FOR ii = 0 TO 2
             blobField = REPEAT$(ii, "12339dkdkjfkdldsessededdddeeeee" & STRING$(RND(1,25), 177))
             strArr(ii) = blobField
             ? blobField
          NEXT
          
          blobField = JOIN$(strArr(), BINARY)
          PUT #1,, blobField       'you put it to your database here
          CLOSE #1
    
          'then to get it back:
       OPEN "c:\blobFieldTest01.dat" FOR BINARY AS #1 'standin for your database
       GET #1,, strArr()
       
       FOR ii = 0 TO 2
          ? strArr(ii)
       NEXT
    
    END FUNCTION

    Leave a comment:


  • Bob Zale
    replied
    Originally posted by Chris Holbrook View Post
    Yes, that's what he meant, all right.
    Thanks!
    Good! I was beginning to worry... {smile}


    Bob Zale
    PowerBASIC Inc.

    Leave a comment:


  • Chris Holbrook
    replied
    Originally posted by Bob Zale View Post
    Tell me that's what you really meant to suggest?
    Yes, that's what he meant, all right.

    Thanks!

    Leave a comment:


  • John Gleason
    replied
    Chris, I'm writing a little example which I think shows you how to do it just like you want, no extra delimiters. Added: Oopsie, Sir Bob replied already, prolly you don't need the 'zample now, no?
    Last edited by John Gleason; 27 Jul 2008, 05:07 PM.

    Leave a comment:


  • Bob Zale
    replied
    Originally posted by Michael Mattias View Post
    I know, I know: "But Mike, I can't know if a delimiter will or won't appear in the data." Well, boo-hoo. Then you just build a big string consisting of element count followed by as many <element length, elementdata> pairs as required and store that string.

    Michael, Michael, Michael...

    Somehow, Someway, I just know you really meant to suggest JOIN$ with the BINARY option to create the big string, didn't you? That's one line of code. And then you can use PARSE with the BINARY option to take it apart... Again, just one line of code. Tell me that's what you really meant to suggest?

    Best regards,

    Bob Zale
    PowerBASIC Inc.

    Leave a comment:


  • Chris Holbrook
    replied
    Originally posted by Michael Mattias View Post
    What... is 'DSA?'
    Dynamic String Array

    Originally posted by Michael Mattias View Post
    Well, boo-hoo.
    quite.

    What you say is true and I may have to do it, though I would prefer to deal with the array rather than its components.

    Leave a comment:


  • Michael Mattias
    replied
    What is 'DSA?'

    BUt that's not really important, because.....

    If you want to store a dynamic string array, all you have to do is JOIN$() it into a big string using a delimiter which does not appear in the data and store that string; when you retrieve it you can just PARSE it out using the same delimter.

    I know, I know: "But Mike, I can't know if a delimiter will or won't appear in the data." Well, boo-hoo. Then you just build a big string consisting of element count followed by as many <element length, elementdata> pairs as required and store that string.

    Should take you maybe 15 minutes to write and test either way. Add database store and retrieve code and you're done.

    Leave a comment:


  • Chris Holbrook
    started a topic restoring dynamic string array

    restoring dynamic string array

    PB has great facilities for storing and retrieving dynamic string arrays to a file, but I want to I want to take a copy of a DSA string array into a database blob field and restore it from the same. I suspect that this won't work as something in the PB program (I'm guessing) keeps track of the DSA's memory utilisation and therefore has to know about the DSA, and there is no API for it. Or maybe it is a Windows string type and there is an API. Or there is another way of doing it.

    I thought I would ask for help rather than suffering.
Working...
X