Post by Tony Morehentags and other MP3 info including bitrates (fixed and VBR), sampling rates
and number of channels. v1 tags are pretty staightforward to read if you
don't try to read the structure directly, but by each element of the
1) Numeric elements (bytes, bytearrays, shorts, integers, longs) can be
read directly from the stream. ie (4 byte Integer) = Read #Stream As
Integer. Gambas can handle little endian/big endian issues.
2) Fixed length strings must be handled in a two stage process. First,
the required string length number of bytes is read into a byte array.
This
Dim Bytes As New Byte[StringLength]
Bytes.Read(Stream)
FixedString = Bytes.ToString()
Note: Bytes.ToString stops the string conversion at the first null or at
the end of the array. Therfore, you don't have to worry about
null-terminated strings.
v2 tags are more complicated, particularly since the tags can be ascii,
either kind of utf16, or utf8 encoding. The code I sent has been tested
with over 10,000 mp3 files has seems to have no issues.
thank you Gian i did take a rest and read but alas it did not help
Post by Shaneas 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
Why do not you take a moment of rest and read what Tobias Boege
Post by Gianluigirecommend
me in the discussion [0] I told you here [1]?
[0]
http://gambas.8142.n7.nabble.com/Random-access-files-with-fi
xed-length-string-td50880.html
[1] http://gambas.8142.n7.nabble.com/vb-code-td59764.html
I am very confused from the docs
Post by Shane_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
I think
Post by ShaneRead #hfile, IDtag, ID3v1_TAG
should be
Read #hfile, IDtag as ID3v1_TAG
--
Open WebMail Project (http://openwebmail.org)
---------- Original Message -----------
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)
Post by ShaneTag[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
Yes it is possible, I do it. here is some code (incomplete)
Post by n***@nothingsimple.com-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 -----------
Sent: Sun, 16 Jul 2017 12:42:35 -0400
Subject: Re: [Gambas-user] reading files
given this example
Post by T Lee DavidsonPost by ShanePRIVATE 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?
"... 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
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
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
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
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
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
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
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
https://lists.sourceforge.net/lists/listinfo/gambas-user
------------------------------------------------------------