2016-08-17 8 views
-3

私はビジュアルベーシックでそれを使用してデバッグして写真を見つけたらコードを見つけますが、ソフトウェアを保存したいときはhereです。VB.NETを使用してウェブサイトから画像をスクラップしながら保存する

Private Sub btnSaveImages_Click(ByVal sender As _ 
    System.Object, ByVal e As System.EventArgs) Handles _ 
    btnSaveImages.Click 
    Dim dir_name As String = txtDirectory.Text 
    If Not dir_name.EndsWith("\") Then dir_name &= "\" 

    For Each pic As PictureBox In flpPictures.Controls 
     Dim bm As Bitmap = pic.Image 
     Dim filename As String = pic.Tag 
     filename = _ 
      filename.Substring(filename.LastIndexOf("/") + _ 
      1) 
     Dim ext As String = _ 
      filename.Substring(filename.LastIndexOf(".")) 
     Dim full_name As String = dir_name & filename 

     Select Case ext 
      Case ".bmp" 
       bm.Save(full_name, Imaging.ImageFormat.Bmp) 
      Case ".gif" 
       bm.Save(full_name, Imaging.ImageFormat.Gif) 
      Case ".jpg", "jpeg" 
       bm.Save(full_name, Imaging.ImageFormat.Jpeg) 
      Case ".png" 
       bm.Save(full_name, Imaging.ImageFormat.Png) 
      Case ".tiff" 
       bm.Save(full_name, Imaging.ImageFormat.Tiff) 
      Case Else 
       MessageBox.Show(_ 
        "Unknown file type " & ext & _ 
        " in file " & filename, _ 
        "Unknown File Type", _ 
        MessageBoxButtons.OK, _ 
        MessageBoxIcon.Error) 
     End Select 
    Next pic 

    Beep() 
End Sub 
+1

それはあなたが渡しているあなたに言っています0より小さい値を 'Substring'に返します。 'LastIndexOf'のためのドキュメントを読んで、それが0より小さい数値を返すかもしれない条件を見てください。そして、あなたはあなたのプログラムをデバッグし、なぜその値を返すのかを見なければなりません。 –

+0

あなたのコメントを購入することを意味するものが得られませんもっと詳しく説明できるか –

答えて

1

LastIndexOfが見つからないという問題があります。あなたのファイル名に。これは、あなたが見ているエラーをスローするSubStringに-1を渡します。自分がそのような

System.IO.Path.GetDirectoryName(filename) 
    System.IO.Path.GetFileName(filename) 
    System.IO.Path.GetFileNameWithoutExtension(filename) 

Private Sub btnSaveImages_Click(ByVal sender As _ 
    System.Object, ByVal e As System.EventArgs) Handles _ 
    btnSaveImages.Click 

    For Each pic As PictureBox In flpPictures.Controls 
     Dim bm As Bitmap = pic.Image 
     Dim path As String = pic.Tag 
     Dim filename = IO.Path.GetFileName(path) 
     Dim ext = IO.Path.GetExtension(path) 
     Dim full_name = IO.Path.Combine(txtDirectory.txt, filename) 

としてSystem.Io.Pathのメソッドを使用する代わりに解析するファイルの書き込みの

....

+0

そのコードをどこに追加すればいいですか?はじめに? –

+0

例を追加しました。 – FloatingKiwi

関連する問題