Re: [Gambas-user] reading files
I think Read #hfile, IDtag, ID3v1_TAG should be Read #hfile, IDtag as ID3v1_TAG -- Open WebMail Project (http://openwebmail.org) -- Original Message --- From: ShaneTo: gambas-user@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, nand...@nothingsimple.com 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 > > To: gambas-user@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@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@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@lists.sourceforge.net > https://lists.sourceforge.net/lists/listinfo/gambas-user --- End of Original Message --- -- Check out the vibrant tech community on
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, nand...@nothingsimple.com 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 DavidsonTo: gambas-user@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@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@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@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/gambas-user
Re: [Gambas-user] reading files
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 DavidsonTo: gambas-user@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@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@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/gambas-user