[Gambas-user] reading files

Shane buster6seven at ...626...
Wed Jul 19 06:33:45 CEST 2017


thank you Gian i did take a rest and read but alas it did not help

as far as i see it he is saying don't use binary file for fixed length 
strings

but as this is an mp3 file tag witch i have no control i am doomed



On 18/07/17 19:22, Gianluigi wrote:
> Why do not you take a moment of rest and read what Tobias Boege recommend
> me in the discussion [0] I told you here [1]?
>
> [0]
> http://gambas.8142.n7.nabble.com/Random-access-files-with-fixed-length-string-td50880.html
> [1] http://gambas.8142.n7.nabble.com/vb-code-td59764.html
>
> 2017-07-18 9:04 GMT+02:00 Shane <buster6seven at ...626...>:
>
>> I am very confused from the docs
>>
>> _Variable_ *= READ* [ *#* _Stream_ ] *AS* _Datatype_
>>
>> _Variable_ *= READ* [ *#* _Stream_ *,* ] _Length_
>>
>> so wouldn't it be_
>> _
>>
>> IDtag = read #hfile  as ID3v1_TAG  ?
>>
>> with doesn't work by the way
>>
>>
>>
>> On 18/07/17 12:44, nando_f at ...951... wrote:
>>
>>> I think
>>>           Read #hfile, IDtag, ID3v1_TAG
>>> should be
>>>           Read #hfile, IDtag as ID3v1_TAG
>>>
>>>
>>> --
>>> Open WebMail Project (http://openwebmail.org)
>>>
>>>
>>> ---------- Original Message -----------
>>> From: Shane <buster6seven at ...626...>
>>> To: gambas-user at lists.sourceforge.net
>>> Sent: Tue, 18 Jul 2017 10:50:43 +1000
>>> Subject: Re: [Gambas-user] reading files
>>>
>>> i don't know what i am doing wrong
>>>> Public Struct ID3v1_TAG              '(128 bytes)
>>>>         Tag[3] As String               'always TAG
>>>>         Title[30] As String             'title, 30 characters
>>>>         Artist[30] As String           'artist, 30 characters
>>>>         Album[30] As String           'album, 30 characters
>>>>         Year[4] As String              'year, 4 characters
>>>>         Comment[30] As String          'comment, 30 characters (or 28 if
>>>> track# included)
>>>>         Genre As Byte                   'genre, 255 for none defined
>>>> End Struct
>>>>
>>>> Private Sub GetID3v1(File As String)
>>>>        Dim IDtag As ID3v1_TAG
>>>>        Dim hfile As File
>>>>
>>>>        hfile = Open File For Read
>>>>
>>>>            '
>>>>            'read the tag
>>>>            ' seek to end of less tag size
>>>>
>>>>            Read #hfile, IDtag, ID3v1_TAG
>>>>
>>>> here i get IDtag is NULL
>>>>
>>>> On 18/07/17 05:05, nando_f at ...951... wrote:
>>>>
>>>>> Yes it is possible, I do it.  here is some code (incomplete)
>>>>>
>>>>> -Nando (Canada)
>>>>>
>>>>>
>>>>>
>>>>> ' top of class file
>>>>> Public Struct recstruc
>>>>>      _a as integer
>>>>>      _b as integer
>>>>>      _c as integer
>>>>> end struct
>>>>>
>>>>>
>>>>> ' a function
>>>>> public function openAfile(filename as string) as file
>>>>>
>>>>> dim hfile as file
>>>>> dim arec as recstruc
>>>>>
>>>>> hfile = open filename for read write create
>>>>>
>>>>> with arec   'some values to write.
>>>>>      ._a = 1
>>>>>      ._b = 22
>>>>>      ._c = 333
>>>>> end with
>>>>>
>>>>> write #hfile, arec as recstruc
>>>>>
>>>>> 'if you position the hfile pointer back to zero, you can...
>>>>> read #hfile, arec as recstruc
>>>>>
>>>>> close #hfile
>>>>>
>>>>> end
>>>>>
>>>>>
>>>>>
>>>>>
>>>>>
>>>>>
>>>>> --
>>>>> Open WebMail Project (http://openwebmail.org)
>>>>>
>>>>>
>>>>> ---------- Original Message -----------
>>>>> From: T Lee Davidson <t.lee.davidson at ...626...>
>>>>> To: gambas-user at lists.sourceforge.net
>>>>> Sent: Sun, 16 Jul 2017 12:42:35 -0400
>>>>> Subject: Re: [Gambas-user] reading files
>>>>>
>>>>> On 07/16/2017 06:57 AM, Shane wrote:
>>>>>>> given this example
>>>>>>>
>>>>>>> PRIVATE SUB BinaryRead(FilePath AS String)
>>>>>>>       DIM binaryFile AS File
>>>>>>>       DIM i AS Integer
>>>>>>>       DIM b AS Byte
>>>>>>>       DIM s AS Short
>>>>>>>       DIM s1 AS String
>>>>>>>       DIM s2 AS String
>>>>>>>       ' Read binary file
>>>>>>>       binaryFile = OPEN FilePath FOR READ
>>>>>>>       READ #binaryFile, i
>>>>>>>       READ #binaryFile, b
>>>>>>>       READ #binaryFile, s
>>>>>>>       READ #binaryFile, s1
>>>>>>>       READ #binaryFile, s2
>>>>>>>       CLOSE #binaryFile
>>>>>>>       ' Display results
>>>>>>>       PRINT i
>>>>>>>       PRINT b
>>>>>>>       PRINT s
>>>>>>>       PRINT s1
>>>>>>>       PRINT s2
>>>>>>> END
>>>>>>>
>>>>>>>
>>>>>>> is there a way for gambas to read a struct of all these variables
>>>>>>> in one read ?
>>>>>>>
>>>>>>> You may have hinted at the solution within your question. Have you
>>>>>> considered
>>>>>> using a Structure?
>>>>>>
>>>>>> http://gambaswiki.org/wiki/lang/read :
>>>>>> "... reads the stream Stream as binary data whose type is specified by
>>>>>> the
>>>>>> Datatype argument."
>>>>>>
>>>>>> "The returned datatype can be one of the following: NULL, Boolean,
>>>>>> Byte, Short,
>>>>>>     Integer, Long, Pointer, Single, Float, Date, String, Variant, any
>>>>>> Array,
>>>>>>     Collection or structure."
>>>>>>
>>>>>> http://gambaswiki.org/wiki/lang/structdecl
>>>>>>
>>>>>> --
>>>>>> Lee
>>>>>>
>>>>>> ------------------------------------------------------------
>>>>>> ------------------
>>>>>> Check out the vibrant tech community on one of the world's most
>>>>>> engaging tech sites, Slashdot.org! http://sdm.link/slashdot
>>>>>> _______________________________________________
>>>>>> Gambas-user mailing list
>>>>>> Gambas-user at lists.sourceforge.net
>>>>>> https://lists.sourceforge.net/lists/listinfo/gambas-user
>>>>>>
>>>>> ------- End of Original Message -------
>>>>>
>>>>>
>>>>> ------------------------------------------------------------
>>>>> ------------------
>>>>> Check out the vibrant tech community on one of the world's most
>>>>> engaging tech sites, Slashdot.org! http://sdm.link/slashdot
>>>>> _______________________________________________
>>>>> Gambas-user mailing list
>>>>> Gambas-user at lists.sourceforge.net
>>>>> https://lists.sourceforge.net/lists/listinfo/gambas-user
>>>>>
>>>> ------------------------------------------------------------
>>>> ------------------
>>>> Check out the vibrant tech community on one of the world's most
>>>> engaging tech sites, Slashdot.org! http://sdm.link/slashdot
>>>> _______________________________________________
>>>> Gambas-user mailing list
>>>> Gambas-user at lists.sourceforge.net
>>>> https://lists.sourceforge.net/lists/listinfo/gambas-user
>>>>
>>> ------- End of Original Message -------
>>>
>>>
>>> ------------------------------------------------------------
>>> ------------------
>>> Check out the vibrant tech community on one of the world's most
>>> engaging tech sites, Slashdot.org! http://sdm.link/slashdot
>>> _______________________________________________
>>> Gambas-user mailing list
>>> Gambas-user at lists.sourceforge.net
>>> https://lists.sourceforge.net/lists/listinfo/gambas-user
>>>
>> ------------------------------------------------------------
>> ------------------
>> Check out the vibrant tech community on one of the world's most
>> engaging tech sites, Slashdot.org! http://sdm.link/slashdot
>> _______________________________________________
>> Gambas-user mailing list
>> Gambas-user at lists.sourceforge.net
>> https://lists.sourceforge.net/lists/listinfo/gambas-user
>>
> ------------------------------------------------------------------------------
> Check out the vibrant tech community on one of the world's most
> engaging tech sites, Slashdot.org! http://sdm.link/slashdot
> _______________________________________________
> Gambas-user mailing list
> Gambas-user at lists.sourceforge.net
> https://lists.sourceforge.net/lists/listinfo/gambas-user





More information about the User mailing list