Skip to content
  • Categories
  • Recent
  • Tags
  • Popular
  • World
  • Users
  • Groups
Skins
  • Light
  • Cerulean
  • Cosmo
  • Flatly
  • Journal
  • Litera
  • Lumen
  • Lux
  • Materia
  • Minty
  • Morph
  • Pulse
  • Sandstone
  • Simplex
  • Sketchy
  • Spacelab
  • United
  • Yeti
  • Zephyr
  • Dark
  • Cyborg
  • Darkly
  • Quartz
  • Slate
  • Solar
  • Superhero
  • Vapor

  • Default (No Skin)
  • No Skin
Collapse
Code Project
  1. Home
  2. General Programming
  3. Visual Basic
  4. Crash on converting string to byte

Crash on converting string to byte

Scheduled Pinned Locked Moved Visual Basic
game-dev
32 Posts 3 Posters 129 Views 1 Watching
  • Oldest to Newest
  • Newest to Oldest
  • Most Votes
Reply
  • Reply as topic
Log in to reply
This topic has been deleted. Only users with topic management privileges can see it.
  • M Member Alienoiz

    :) Thanks...i use a lot of snippets too....so how do i convert them properly?..i already tried some methods but i could not do it! anyway..the code is functionning for pre-tagged files...i just cannot write the properties into new files :(

    L Offline
    L Offline
    Lost User
    wrote on last edited by
    #7

    Unless you know "why" you want to convert a string to "byte" (which makes little sense in your present context) even knowing "how", will only get you a little bit further. And maybe "deeper" in the wrong direction.

    "Before entering on an understanding, I have meditated for a long time, and have foreseen what might happen. It is not genius which reveals to me suddenly, secretly, what I have to say or to do in a circumstance unexpected by other people; it is reflection, it is meditation." - Napoleon I

    1 Reply Last reply
    0
    • L Lost User

      I don't know how you convert them because I am not clear on what type the target is. So you need to check the definition of those fields and use an appropriate method of the Convert Class (System) | Microsoft Learn[^].

      M Offline
      M Offline
      Member Alienoiz
      wrote on last edited by
      #8

      well..they are just the Track ID and Genre ID in an mp3 file...can i change the main code and switch them to string?...this is why i posted the full code on the start!!!

      L 1 Reply Last reply
      0
      • M Member Alienoiz

        well..they are just the Track ID and Genre ID in an mp3 file...can i change the main code and switch them to string?...this is why i posted the full code on the start!!!

        L Offline
        L Offline
        Lost User
        wrote on last edited by
        #9

        I don't know the answer. You first need to know what actual type they are in the file: Byte, String, Int32, Int64, Bool etc. You then need to set a matching type in your code. Then when you get the user's selection, you may or may not need to convert what the user chooses into the appropriate type. But all that detail should have been decided before you put all this code together. And I am afraid there is far too much for anyone other than you, to know where to do this.

        M 2 Replies Last reply
        0
        • L Lost User

          I don't know the answer. You first need to know what actual type they are in the file: Byte, String, Int32, Int64, Bool etc. You then need to set a matching type in your code. Then when you get the user's selection, you may or may not need to convert what the user chooses into the appropriate type. But all that detail should have been decided before you put all this code together. And I am afraid there is far too much for anyone other than you, to know where to do this.

          M Offline
          M Offline
          Member Alienoiz
          wrote on last edited by
          #10

          i think i can do the conversion here:

          Dim strTag As New String(" ", 3)
          Dim strTitle As New String(" ", 30)
          Dim strArtist As New String(" ", 30)
          Dim strAlbum As New String(" ", 30)
          Dim strYear As New String(" ", 4)
          Dim strComment As New String(" ", 28)
          Dim bytDummy As Byte
          Dim bytTrack As Byte
          Dim bytGenre As Byte

          setting the "as byte" to "new string" but i do not know about the numbers here??!!!

          L 1 Reply Last reply
          0
          • L Lost User

            I don't know the answer. You first need to know what actual type they are in the file: Byte, String, Int32, Int64, Bool etc. You then need to set a matching type in your code. Then when you get the user's selection, you may or may not need to convert what the user chooses into the appropriate type. But all that detail should have been decided before you put all this code together. And I am afraid there is far too much for anyone other than you, to know where to do this.

            M Offline
            M Offline
            Member Alienoiz
            wrote on last edited by
            #11

            i think is Int32 :)

            L 1 Reply Last reply
            0
            • M Member Alienoiz

              i think is Int32 :)

              L Offline
              L Offline
              Lost User
              wrote on last edited by
              #12

              Fine, but you need to be certain.

              M 1 Reply Last reply
              0
              • M Member Alienoiz

                i think i can do the conversion here:

                Dim strTag As New String(" ", 3)
                Dim strTitle As New String(" ", 30)
                Dim strArtist As New String(" ", 30)
                Dim strAlbum As New String(" ", 30)
                Dim strYear As New String(" ", 4)
                Dim strComment As New String(" ", 28)
                Dim bytDummy As Byte
                Dim bytTrack As Byte
                Dim bytGenre As Byte

                setting the "as byte" to "new string" but i do not know about the numbers here??!!!

                L Offline
                L Offline
                Lost User
                wrote on last edited by
                #13

                As I said above, You need to match your definitions with the actual types that are used in the file. So you need to find the definition of the file types you are trying to modify and check the requirements.

                1 Reply Last reply
                0
                • M Member Alienoiz

                  Hello all...im new and im not even a coder. I just do some apps once in a while to keep the head busy and exercise my mind. im actually trying to make an mp3 tagger. All is good but i cannot tag new files..only pre-tagged files...it says it cannot convert string to byte in the "Track" and "Genre" fields. This is the class im using

                  Imports System.IO

                  Public Class MP3ID3v1

                  ' Constructor
                  Public Sub New(Optional ByVal Filename As String = "")
                      MyBase.New()
                      If (Filename <> "") Then Me.Filename = Filename
                  End Sub
                  

                  #Region " Declarations "

                  ' Genres
                  Public Enum Genres As Byte
                      Blues = 0
                      ClassicRock = 1
                      Country = 2
                      Dance = 3
                      Disco = 4
                      Funk = 5
                      Grunge = 6
                      HipHop = 7
                      Jazz = 8
                      Metal = 9
                      NewAge = 10
                      Oldies = 11
                      Other = 12
                      Pop = 13
                      RnB = 14
                      Rap = 15
                      Reggae = 16
                      Rock = 17
                      Techno = 18
                      Industrial = 19
                      Alternative = 20
                      Ska = 21
                      DeathMetal = 22
                      Pranks = 23
                      Soundtrack = 24
                      EuroTechno = 25
                      Ambient = 26
                      TripHop = 27
                      Vocal = 28
                      JazzFunk = 29
                      Fusion = 30
                      Trance = 31
                      Classical = 32
                      Instrumental = 33
                      Acid = 34
                      House = 35
                      Game = 36
                      SoundClip = 37
                      Gospel = 38
                      Noise = 39
                      AlternRock = 40
                      Bass = 41
                      Soul = 42
                      Punk = 43
                      Space = 44
                      Meditative = 45
                      InstrumentalPop = 46
                      InstrumentalRock = 47
                      Ethnic = 48
                      Gothic = 49
                      Darkwave = 50
                      TechnoIndustrial = 51
                      Electronic = 52
                      PopFolk = 53
                      Eurodance = 54
                      Dream = 55
                      SouthernRock = 56
                      Comedy = 57
                      Cult = 58
                      Gangsta = 59
                      Top40 = 60
                      ChristianRap = 61
                      PopFunk = 62
                      Jungle = 63
                      NativeAmerican = 64
                      Cabaret = 65
                      NewWave = 66
                      Psychadelic = 67
                      Rave = 68
                      Showtunes = 69
                      Trailer = 70
                      LoFi = 71
                      Tribal = 72
                      AcidPunk = 73
                      AcidJazz = 74
                      Polka = 75
                      Retro = 76
                      Musical = 77
                      RocknRoll = 78
                      HardRock = 79
                      None = 255
                  End Enum
                  
                  ' Frame types
                  Public Enum FrameTypes As Byte
                      Title = 0
                      Artist = 1
                      Album = 2
                  
                  J Offline
                  J Offline
                  jschell
                  wrote on last edited by
                  #14

                  Debugging methodology - there are others though. Start removing or commenting out code until the error goes away. Obviously you must give some thought to exactly which code you do this to. Then when the error goes away you have found the problem. Then you can create a much smaller example code to test that functionality and figure out how to make it work correctly. Then you fix the original code and put everything else back.

                  1 Reply Last reply
                  0
                  • L Lost User

                    Fine, but you need to be certain.

                    M Offline
                    M Offline
                    Member Alienoiz
                    wrote on last edited by
                    #15

                    i tried this but no luck:

                        If CheckBox5.Checked = True Then
                                        Dim txt = TextBox5.Text
                                        Dim tt As Integer = Convert.ToInt32(txt)
                                        tt = objMP3V1.Frame(MP3ID3v1.FrameTypes.Track) & vbLf
                                        objMP3V1.Update()
                                    End If
                                    If CheckBox6.Checked = True Then
                                        objMP3V1.Frame(MP3ID3v1.FrameTypes.Comment) = TextBox6.Text
                                        objMP3V1.Update()
                                    End If
                    
                                    If CheckBox7.Checked = True Then
                                        Dim xt = ComboBox1.SelectedValue
                                        Dim xx As Integer = Convert.ToInt32(xt)
                                        xx = objMP3V1.Frame(MP3ID3v1.FrameTypes.Genre) & vbLf
                                        objMP3V1.Update()
                                    End If
                    
                    L 1 Reply Last reply
                    0
                    • M Member Alienoiz

                      i tried this but no luck:

                          If CheckBox5.Checked = True Then
                                          Dim txt = TextBox5.Text
                                          Dim tt As Integer = Convert.ToInt32(txt)
                                          tt = objMP3V1.Frame(MP3ID3v1.FrameTypes.Track) & vbLf
                                          objMP3V1.Update()
                                      End If
                                      If CheckBox6.Checked = True Then
                                          objMP3V1.Frame(MP3ID3v1.FrameTypes.Comment) = TextBox6.Text
                                          objMP3V1.Update()
                                      End If
                      
                                      If CheckBox7.Checked = True Then
                                          Dim xt = ComboBox1.SelectedValue
                                          Dim xx As Integer = Convert.ToInt32(xt)
                                          xx = objMP3V1.Frame(MP3ID3v1.FrameTypes.Genre) & vbLf
                                          objMP3V1.Update()
                                      End If
                      
                      L Offline
                      L Offline
                      Lost User
                      wrote on last edited by
                      #16

                      Member Alienoiz wrote:

                      i tried this but no luck:

                      Why are you trying to store 32 bit integer values in 8 bit byte fields?

                      M 2 Replies Last reply
                      0
                      • L Lost User

                        Member Alienoiz wrote:

                        i tried this but no luck:

                        Why are you trying to store 32 bit integer values in 8 bit byte fields?

                        M Offline
                        M Offline
                        Member Alienoiz
                        wrote on last edited by
                        #17

                        well..,like i say..im no coder...i just read snippets and try by error!

                        1 Reply Last reply
                        0
                        • L Lost User

                          Member Alienoiz wrote:

                          i tried this but no luck:

                          Why are you trying to store 32 bit integer values in 8 bit byte fields?

                          M Offline
                          M Offline
                          Member Alienoiz
                          wrote on last edited by
                          #18

                          can it be here?

                          ' Fix the length of the frames
                          strTitle = LSet(mobjFrame(0), Len(strTitle))
                          strArtist = LSet(mobjFrame(1), Len(strArtist))
                          strAlbum = LSet(mobjFrame(2), Len(strAlbum))
                          strYear = LSet(mobjFrame(3), Len(strYear))
                          bytTrack = mobjFrame(4)
                          strComment = LSet(mobjFrame(5), Len(strComment))
                          bytGenre = mobjFrame(6)

                          sorry im blind about it for now :(((

                          L 1 Reply Last reply
                          0
                          • M Member Alienoiz

                            can it be here?

                            ' Fix the length of the frames
                            strTitle = LSet(mobjFrame(0), Len(strTitle))
                            strArtist = LSet(mobjFrame(1), Len(strArtist))
                            strAlbum = LSet(mobjFrame(2), Len(strAlbum))
                            strYear = LSet(mobjFrame(3), Len(strYear))
                            bytTrack = mobjFrame(4)
                            strComment = LSet(mobjFrame(5), Len(strComment))
                            bytGenre = mobjFrame(6)

                            sorry im blind about it for now :(((

                            L Offline
                            L Offline
                            Lost User
                            wrote on last edited by
                            #19

                            Sorry, I really have no idea what that code is trying to do, so I cannnt say whether it is correct or not.

                            M 1 Reply Last reply
                            0
                            • L Lost User

                              Sorry, I really have no idea what that code is trying to do, so I cannnt say whether it is correct or not.

                              M Offline
                              M Offline
                              Member Alienoiz
                              wrote on last edited by
                              #20

                              hey..i changed my library..im now using UltraID3lib.....it seems im making it but i have another question... how do i make mass edit in a listbox? im using this code that was working previously but is not working now:

                              Private Sub Button3_Click(sender As Object, e As EventArgs) Handles Button3.Click

                                  If ListBox1.SelectedItem = "" Then
                                      Dim r8 As DialogResult = MessageBox.Show(Me, "No File Selected!",
                                                             "Select Files", MessageBoxButtons.OK)
                              
                              
                                  Else
                                      If CheckBox1.Checked = False And CheckBox2.Checked = False And CheckBox3.Checked = False And CheckBox4.Checked = False And CheckBox5.Checked = False And CheckBox6.Checked = False And CheckBox7.Checked = False Then
                                          Dim r8 As DialogResult = MessageBox.Show(Me, "Select a tag to enter!",
                                                            "Select Tags", MessageBoxButtons.OK)
                                      Else
                                          Dim fil = ListBox1.SelectedItems
                                          Dim fil2 As String
                                          For Each fil2 In fil
                              
                                              If CheckBox1.Checked = True Then
                                                  myMp3.ID3v2Tag.Title = TextBox1.Text
                                                  myMp3.Write()
                                              End If
                              
                              
                                              If CheckBox2.Checked = True Then
                                                  myMp3.ID3v2Tag.Artist = TextBox2.Text
                                                  myMp3.Write()
                                              End If
                              
                              
                                              If CheckBox3.Checked = True Then
                                                  myMp3.ID3v2Tag.Album = TextBox3.Text
                                                  myMp3.Write()
                                              End If
                              
                              
                                              If CheckBox4.Checked = True And TextBox4.Text <> "" Then
                                                  On Error Resume Next
                                                  myMp3.ID3v2Tag.Year = Short.Parse(TextBox4.Text)
                                                  myMp3.Write()
                                                  On Error Resume Next
                                              End If
                              
                              
                                              If CheckBox5.Checked = True And TextBox5.Text <> "" Then
                                                  myMp3.ID3v2Tag.TrackNum = Short.Parse(TextBox5.Text)
                                                  myMp3.Write()
                                                  On Error Resume Next
                                              End If
                              
                              
                                              If CheckBox6.Checked = True Then
                                                  myMp3.ID3v2Tag.Comments = TextBox6.Text
                                                  myMp3.Write()
                                              End If
                              
                                              If CheckBox7.Checked = True Then
                                                  If ComboBox1.Text = "01 - User" Then
                                                      myMp3.ID3v2Tag
                              
                              L 1 Reply Last reply
                              0
                              • M Member Alienoiz

                                hey..i changed my library..im now using UltraID3lib.....it seems im making it but i have another question... how do i make mass edit in a listbox? im using this code that was working previously but is not working now:

                                Private Sub Button3_Click(sender As Object, e As EventArgs) Handles Button3.Click

                                    If ListBox1.SelectedItem = "" Then
                                        Dim r8 As DialogResult = MessageBox.Show(Me, "No File Selected!",
                                                               "Select Files", MessageBoxButtons.OK)
                                
                                
                                    Else
                                        If CheckBox1.Checked = False And CheckBox2.Checked = False And CheckBox3.Checked = False And CheckBox4.Checked = False And CheckBox5.Checked = False And CheckBox6.Checked = False And CheckBox7.Checked = False Then
                                            Dim r8 As DialogResult = MessageBox.Show(Me, "Select a tag to enter!",
                                                              "Select Tags", MessageBoxButtons.OK)
                                        Else
                                            Dim fil = ListBox1.SelectedItems
                                            Dim fil2 As String
                                            For Each fil2 In fil
                                
                                                If CheckBox1.Checked = True Then
                                                    myMp3.ID3v2Tag.Title = TextBox1.Text
                                                    myMp3.Write()
                                                End If
                                
                                
                                                If CheckBox2.Checked = True Then
                                                    myMp3.ID3v2Tag.Artist = TextBox2.Text
                                                    myMp3.Write()
                                                End If
                                
                                
                                                If CheckBox3.Checked = True Then
                                                    myMp3.ID3v2Tag.Album = TextBox3.Text
                                                    myMp3.Write()
                                                End If
                                
                                
                                                If CheckBox4.Checked = True And TextBox4.Text <> "" Then
                                                    On Error Resume Next
                                                    myMp3.ID3v2Tag.Year = Short.Parse(TextBox4.Text)
                                                    myMp3.Write()
                                                    On Error Resume Next
                                                End If
                                
                                
                                                If CheckBox5.Checked = True And TextBox5.Text <> "" Then
                                                    myMp3.ID3v2Tag.TrackNum = Short.Parse(TextBox5.Text)
                                                    myMp3.Write()
                                                    On Error Resume Next
                                                End If
                                
                                
                                                If CheckBox6.Checked = True Then
                                                    myMp3.ID3v2Tag.Comments = TextBox6.Text
                                                    myMp3.Write()
                                                End If
                                
                                                If CheckBox7.Checked = True Then
                                                    If ComboBox1.Text = "01 - User" Then
                                                        myMp3.ID3v2Tag
                                
                                L Offline
                                L Offline
                                Lost User
                                wrote on last edited by
                                #21

                                Sorry, I have no idea what you mean by "this code that was working previously but is not working now:". You need to explain what happens when you run this code and why that is not correct. Alternatively, use the debugger to step through the code to try and find out what is going on.

                                M 1 Reply Last reply
                                0
                                • L Lost User

                                  Sorry, I have no idea what you mean by "this code that was working previously but is not working now:". You need to explain what happens when you run this code and why that is not correct. Alternatively, use the debugger to step through the code to try and find out what is going on.

                                  M Offline
                                  M Offline
                                  Member Alienoiz
                                  wrote on last edited by
                                  #22

                                  well...i just want to apply this code

                                  If CheckBox6.Checked = True Then
                                  myMp3.ID3v2Tag.Comments = TextBox6.Text
                                  myMp3.Write()
                                  End If

                                                  If CheckBox7.Checked = True Then
                                                      If ComboBox1.Text = "01 - User" Then
                                                          myMp3.ID3v2Tag.Genre = TextBox7.Text
                                                          myMp3.Write()
                                                      Else
                                                          myMp3.ID3v2Tag.Genre = ComboBox1.Text
                                                          myMp3.Write()
                                                      End If
                                                  End If
                                  

                                  ........to all selected items in a listbox!!

                                  L 1 Reply Last reply
                                  0
                                  • M Member Alienoiz

                                    well...i just want to apply this code

                                    If CheckBox6.Checked = True Then
                                    myMp3.ID3v2Tag.Comments = TextBox6.Text
                                    myMp3.Write()
                                    End If

                                                    If CheckBox7.Checked = True Then
                                                        If ComboBox1.Text = "01 - User" Then
                                                            myMp3.ID3v2Tag.Genre = TextBox7.Text
                                                            myMp3.Write()
                                                        Else
                                                            myMp3.ID3v2Tag.Genre = ComboBox1.Text
                                                            myMp3.Write()
                                                        End If
                                                    End If
                                    

                                    ........to all selected items in a listbox!!

                                    L Offline
                                    L Offline
                                    Lost User
                                    wrote on last edited by
                                    #23

                                    OK, go ahead.

                                    M 1 Reply Last reply
                                    0
                                    • L Lost User

                                      OK, go ahead.

                                      M Offline
                                      M Offline
                                      Member Alienoiz
                                      wrote on last edited by
                                      #24

                                      i have been searching but i cannot find anything to use...could you gimme a help please?

                                      L 1 Reply Last reply
                                      0
                                      • M Member Alienoiz

                                        i have been searching but i cannot find anything to use...could you gimme a help please?

                                        L Offline
                                        L Offline
                                        Lost User
                                        wrote on last edited by
                                        #25

                                        No, because I have no idea what your problem is. You need to show the code you are using, and explain what the problem is and where it occurs.

                                        M 1 Reply Last reply
                                        0
                                        • L Lost User

                                          No, because I have no idea what your problem is. You need to show the code you are using, and explain what the problem is and where it occurs.

                                          M Offline
                                          M Offline
                                          Member Alienoiz
                                          wrote on last edited by
                                          #26

                                          OK...so i have a listbox with files (mp3) and im trying to edit the tags..i can do one by one but i do not know how to tag them all at once. i want to implement this code in all files of the listbox just by using a button.

                                          If CheckBox1.Checked = True Then
                                          myMp3.ID3v2Tag.Title = TextBox1.Text
                                          myMp3.Write()
                                          End If

                                                          If CheckBox2.Checked = True Then
                                                              myMp3.ID3v2Tag.Artist = TextBox2.Text
                                                              myMp3.Write()
                                                          End If
                                          
                                          
                                                          If CheckBox3.Checked = True Then
                                                              myMp3.ID3v2Tag.Album = TextBox3.Text
                                                              myMp3.Write()
                                                          End If
                                          
                                          
                                                          If CheckBox4.Checked = True And TextBox4.Text <> "" Then
                                                              On Error Resume Next
                                                              myMp3.ID3v2Tag.Year = Short.Parse(TextBox4.Text)
                                                              myMp3.Write()
                                                              On Error Resume Next
                                                          End If
                                          
                                          
                                                          If CheckBox5.Checked = True And TextBox5.Text <> "" Then
                                                              myMp3.ID3v2Tag.TrackNum = Short.Parse(TextBox5.Text)
                                                              myMp3.Write()
                                                              On Error Resume Next
                                                          End If
                                          
                                          
                                                          If CheckBox6.Checked = True Then
                                                              myMp3.ID3v2Tag.Comments = TextBox6.Text
                                                              myMp3.Write()
                                                          End If
                                          
                                                          If CheckBox7.Checked = True Then
                                                          If ComboBox1.Text = "01 - User" Then
                                                              myMp3.ID3v2Tag.Genre = TextBox7.Text
                                                              myMp3.Write()
                                                          Else
                                                              myMp3.ID3v2Tag.Genre = ComboBox1.Text
                                                              myMp3.Write()
                                                          End If
                                          
                                                          If CheckBox8.Checked = True Then
                                          
                                                          End If
                                          
                                          
                                          
                                                      End If
                                          
                                          L 1 Reply Last reply
                                          0
                                          Reply
                                          • Reply as topic
                                          Log in to reply
                                          • Oldest to Newest
                                          • Newest to Oldest
                                          • Most Votes


                                          • Login

                                          • Don't have an account? Register

                                          • Login or register to search.
                                          • First post
                                            Last post
                                          0
                                          • Categories
                                          • Recent
                                          • Tags
                                          • Popular
                                          • World
                                          • Users
                                          • Groups