Hi All,I have a file in my applications Resources that I need to read into a byte array. The file is 8K (8192 bytes) of random binary data.The filename is RndBin and its type is set to Binary in the properties window. The byte array name isBin and needs to be declared as Public.I have tried the following as described in another post, but it does not work. 'Properties' and 'Resources' doesn't even appear as an option.
Tried a variety of code, but no luck.If you click on the file in resources and view the properties window, you could set the File Type to binary. Then you can access the bytearry in code with simple: Dim byteArray = Properties.Resources.FileNamePublic RndBin(8191) as Byte = Properties.Resources.RndBin ' (Does not work)Any example or assistance is greatly appreciated.DW. An mp3 file and files like MS Excel or Word documents are already accessible from the resources as a Byte Array type without using a MemoryStream. Rtf and Txt files are accessible as String types, and Images as Bitmap types.
Wave(.wav) audio files are usually accessible as an UnmanagedMemoryStream. 8)This is why i am wondering how the file was added to the resources and what type of file it is besides 'a binary file'. 8) Public Class Form1Private Sub Form1Load(sender As Object, e As EventArgs) Handles MyBase.LoadDim bts As Byte = My.Resources.SaturdayNightSpecial 'mp3 fileEnd SubEnd ClassIf you say it can`t be done then i`ll try it. Thanks, FrankDecided not to use the RTF files as a resource, as they were way too big. They were application documentation files, and will end up on a separate web site. Project has gone through many revisions to keep the Store submission & installation as simpleas possible, and to comply with BIS regulations.There are better ways, but that aside - what I wanted to show you is that your resources aren't as safe as what you might think.From earlier, I put this RTF file in:When I disassemble (obviously no obfuscation here), well - have a look:I can get ALL of them. Figuring out the type (I have an assembly that I put together a while back to help do that), then I can change the file extension.
I have everything you put in your resources. Images, song files, videos.It's not hard to do!.Anyway, I'm glad you got it all worked out.:)'A problem well stated is a problem half solved.” - Charles F. I've put the function into my project.Have a public declaration: Public Bin As ByteCall the Function: Bin = ExtractResource('RndBin')No exceptions are thrown, but the Bin array is still null.Obviously there's something I'm still doing wrong.DW,Are you still wrangling with RTF files like you were a few months back?The resource manager doesn't see that as binary data.If I'm right, try this please: Dim bytes As Byte = System.Text.Encoding.UTF8.GetBytes(My.Resources.VBForum1)Stop'VBForum1' is the name of the RTF file I put in the resources.
Obviously you want to use the one you put in yours, but you get the idea.' A problem well stated is a problem half solved.” - Charles F. An mp3 file and files like MS Excel or Word documents are already accessible from the resources as a Byte Array type without using a MemoryStream. Rtf and Txt files are accessible as String types, and Images as Bitmap types. Wave(.wav) audio files are usually accessible as an UnmanagedMemoryStream. 8)This is why i am wondering how the file was added to the resources and what type of file it is besides 'a binary file'. 8) Public Class Form1Private Sub Form1Load(sender As Object, e As EventArgs) Handles MyBase.LoadDim bts As Byte = My.Resources.SaturdayNightSpecial 'mp3 fileEnd SubEnd ClassIf you say it can`t be done then i`ll try it.
An mp3 file and files like MS Excel or Word documents are already accessible from the resources as a Byte Array type without using a MemoryStream. Rtf and Txt files are accessible as String types, and Images as Bitmap types. Wave(.wav) audio files are usually accessible as an UnmanagedMemoryStream. 8)This is why i am wondering how the file was added to the resources and what type of file it is besides 'a binary file'.
8) Public Class Form1Private Sub Form1Load(sender As Object, e As EventArgs) Handles MyBase.LoadDim bts As Byte = My.Resources.SaturdayNightSpecial 'mp3 fileEnd SubEnd ClassIf you say it can`t be done then i`ll try itWho are you addressing?' A problem well stated is a problem half solved.” - Charles F. An mp3 file and files like MS Excel or Word documents are already accessible from the resources as a Byte Array type without using a MemoryStream.
Rtf and Txt files are accessible as String types, and Images as Bitmap types. Wave(.wav) audio files are usually accessible as an UnmanagedMemoryStream.
8)This is why i am wondering how the file was added to the resources and what type of file it is besides 'a binary file'. 8) Public Class Form1Private Sub Form1Load(sender As Object, e As EventArgs) Handles MyBase.LoadDim bts As Byte = My.Resources.SaturdayNightSpecial 'mp3 fileEnd SubEnd ClassIf you say it can`t be done then i`ll try itWho are you addressing?' A problem well stated is a problem half solved.” - Charles F. KetteringWhoever will listen to me ramble on i guess.
LOLI replied to you but, forgot to add the @Frank after typing. I figured it may be helpful info totoo though? 8)If you say it can`t be done then i`ll try it. This is why i am wondering how the file was added to the resources and what type of file it is besides 'a binary file'.If he were to serialize data to a binary file, could that file be added to the resources?Answer: YesIf he were to zip the file up, could that file be added to the resources?Answer: YesWould it be a binary file?Answer: YesCan you read it without a Stream object?Answer: Yes but what's the next step?
It will likely involve a stream somewhere along the lines (a filestream if it's being written to file).' A problem well stated is a problem half solved.” - Charles F. The file was created by another utility I made in VS 2017. The file content is completely random byte values. I gave the file extension as.binThe file is certainly in the project resources and in the project resource directory. Anyway, just realized I've been suffering a massive brain fart here and forgetting to use the 'My'.
Makes a big difference. When you go 7 years averaging 3 hrs sleep eachday, this stuff happens.Thanks to Charles F. Kettering for the code sample and IronRazerz for the bold text ' My.Resources.NameOfResource'I'll continue and see what happens.
The file was created by another utility I made in VS 2017. The file content is completely random byte values. I gave the file extension as.binThe file is certainly in the project resources and in the project resource directory. Anyway, just realized I've been suffering a massive brain fart here and forgetting to use the 'My'. Makes a big difference.
When you go 7 years averaging 3 hrs sleep eachday, this stuff happens.Thanks to Charles F. Kettering for the code sample and IronRazerz for the bold text ' My.Resources.NameOfResource'I'll continue and see what happens.Frank. Not Charles.;-).Wait. Before you do that, let's talk some.Is the file you have embedded in the resources proprietary or are you just using the resources to carry it along?I'll explain why I'm asking when you answer.'
A problem well stated is a problem half solved.” - Charles F. Thanks, FrankDecided not to use the RTF files as a resource, as they were way too big. They were application documentation files, and will end up on a separate web site.
Project has gone through many revisions to keep the Store submission & installation as simpleas possible, and to comply with BIS regulations.There are better ways, but that aside - what I wanted to show you is that your resources aren't as safe as what you might think.From earlier, I put this RTF file in:When I disassemble (obviously no obfuscation here), well - have a look:I can get ALL of them. Figuring out the type (I have an assembly that I put together a while back to help do that), then I can change the file extension.
I have everything you put in your resources. Images, song files, videos.It's not hard to do!.Anyway, I'm glad you got it all worked out.:)'A problem well stated is a problem half solved.” - Charles F.
I need to read a base64 string into a byte array, with the intention of converting it from base64 to binary and writing it back out as a jpeg. (Because that's what it is- a base-64 encoded jpeg image)The following is what I have so far:Dim fpath As String = Server.MapPath('myfile.txt')Dim fs As System.IO.FileStreamfs = File.Open(fpath, FileMode.Open, FileAccess.Read, FileShare.None)Dim filelen As Long = fs.LengthDim buffer As ByteTryfs.Read(buffer, 0, filelen)Catch ex As ExceptionTrace.Write('ERROR', ' Error: ' & ex.Message)End Tryfs.Read(buffer, 0, filelen)When I compile it I get a warning: Variable 'buffer' is used before it has been assigned a value. A null reference exception could result at runtime.And this is the error message I get when I run it:Buffer cannot be null.Parameter name: arraySo how do I initialize 'buffer '? Or is there a better way to do this?Thanks very much. You are missing this. Dim buff(fs.Length)As Byte. Also keep in mind if the file size is big, (500 MB or greater you may want to read it in in chunks.
Also put a try catch around it in case things hang.Dim fpath As String = Server.MapPath('myfile.txt')If fi.ExistsAndAlso fileName.Length 0 ThenDim fs As System.IO.FileStream = System.IO.File.Open(fpath, IO.FileMode.Open, IO.FileAccess.Read)Dim buff(fs.Length)As ByteIf fs.Length 0 Thenfs.Read(buff, 0, fs.Length - 1)fs.Closebuff = Nothingfs = NothingElse'Empty FileEnd IfEnd If.