none
FileLen関数の質問です。 RRS feed

  • 質問

  • 以下のコードで100Kb以下の画像ファイルを受け付けないようにしています。

     

        pic2.Text = _
        Application.GetOpenFilename( _
                     FileFilter:="JPG(*.jpg),*.jpg" & _
                                 ",BMP(*.bmp),*.bmp" _
                   , FilterIndex:=1 _
                   , Title:="シール写真" _
                   , MultiSelect:=False _
                    )
        If pic2.Text = "False" Then
        pic2.Text = ""
        Else
        FileNum = FreeFile
        Open pic.Text For Binary As FileNum
        Close
        FILESIZE = FileLen(pic2.Text)
        If FILESIZE > 100000 Then
        Me.pic_err2.Caption = "登録出来る写真は100Kb以下です。" & vbCrLf & "現在のサイズは" & vbCrLf & _
            "約 " & Int(FILESIZE / 1000) & vbCrLf & "Kbです。"
        pic2.Text = ""
        Me.pic_i2 = LoadPicture()
        End If
        End If

    ところが画像(Jpg)が60Kbしかないのに100Kb以上でエラーに

    (この場合、THENに)なってしまいます。

     

    原因がまったくわからないので教えて頂けると助かります。

    2008年7月14日 1:53

すべての返信

  • こんにちは。フォーラムオペレータ大久保です。

     

    画像ファイルが 60kb の大きさであることは、エクスプローラ画面から確認されたんでしょうか?

     

    > 100Kb以上でエラーに(この場合、THENに)なってしまいます。

     

    ということは、pic_err2.Caption  にエラーメッセージとして現在のサイズが格納されているかと思いますが( Int(FILESIZE / 1000) として計算して表示してますよね)、その数字はいくつになってますか?

    あと、FILESIZE という変数を使っていらっしゃいますが、これはどこで定義されてます?

     

    お使いの開発環境(OS、Visual Studioのバージョンなど)についても情報があると、皆様からのアドバイスもつきやすいかと思います。

     

    それではー

    2008年7月31日 7:07