🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

Thread View: fj.lang.visualbasic
9 messages
9 total messages Started by System Wed, 01 Apr 1998 00:00
ロングファイル名への変換
#210
Author: System
Date: Wed, 01 Apr 1998 00:00
11 lines
1188 bytes
こんにちは。VB5で開発しています。

さて、ロングファイル名の取得で、

Declare Function GetFullPathName Lib "kernel32" Alias "GetFullPathNameA" _
    (ByVal lpFileName As String, ByVal nBufferLength As Long, _
    ByVal lpBuffer As String, ByVal lpFilePart As String) As Long

を、使ってみようとおもうのですが、どうもうまくいきません。
どなたか、アドバイスお願いいたします。
Re: ロングファイル名への変換
#215
Author: Masahiro IZUHARA
Date: Thu, 02 Apr 1998 00:00
11 lines
1271 bytes
In article <6ftnd0$r9b$2@news3.osk.3web.ne.jp>, system@tksoft.office.ne.jp 
says...
>Declare Function GetFullPathName Lib "kernel32" Alias "GetFullPathNameA" _
>    (ByVal lpFileName As String, ByVal nBufferLength As Long, _
>    ByVal lpBuffer As String, ByVal lpFilePart As String) As Long
最後の引数を「lpFilePart As long」にすれば動きます。

-- 
                                                               出原 正裕
                           izuha@hitachi-ns.co.jp/izuha@ba2.so-net.or.jp
Re: ロングファイル名への変換
#245
Author: System
Date: Sat, 04 Apr 1998 00:00
10 lines
1317 bytes
|>Declare Function GetFullPathName Lib "kernel32" Alias "GetFullPathNameA" _
|>    (ByVal lpFileName As String, ByVal nBufferLength As Long, _
|>    ByVal lpBuffer As String, ByVal lpFilePart As String) As Long
|最後の引数を「lpFilePart As long」にすれば動きます。
|

lpFilePart As long にしたのですが、だめでした。どうやら、値の送り方が間違っ
ているのでかもしれません。すみませんが、サンプルを書いてはくださらないでしょ
うか。
Re: ロングファイル名への変換
#254
Author: Masahiro IZUHARA
Date: Mon, 06 Apr 1998 00:00
15 lines
1573 bytes
fj.os.ms-windows.programmingはFollowup-To:より削ります。

In article <6g5ek4$2os$2@news3.osk.3web.ne.jp>, system@tksoft.office.ne.jp 
says...
>lpFilePart As long にしたのですが、だめでした。どうやら、値の送り方が間違っ
>ているのでかもしれません。すみませんが、サンプルを書いてはくださらないでしょ
>うか。
どう「だめだった」んでしょうか。
「GetFullPathName()のコールが実行時エラーになった」とか、「コールは
できたけど値が正しく取得できない」とか書いてもらわないと...

-- 
                                                               出原 正裕
                           izuha@hitachi-ns.co.jp/izuha@ba2.so-net.or.jp
Re: ロングファイル名への変換
#259
Author: as you like...
Date: Mon, 06 Apr 1998 00:00
25 lines
1873 bytes

System <system@tksoft.office.ne.jp> wrote in article
<6g5ek4$2os$2@news3.osk.3web.ne.jp>...
> |>Declare Function GetFullPathName Lib "kernel32" Alias "GetFullPathNameA" _
> |>    (ByVal lpFileName As String, ByVal nBufferLength As Long, _
> |>    ByVal lpBuffer As String, ByVal lpFilePart As String) As Long
> |最後の引数を「lpFilePart As long」にすれば動きます。
> |
> 
> lpFilePart As long にしたのですが、だめでした。どうやら、値の送り方が間違っ
> ているのでかもしれません。すみませんが、サンプルを書いてはくださらないでしょ
> うか。
> 

確か、GetFullPathNameでは、ショートファイル名からロングファイル名への変換は
出来なかったと思います。
VCならどうすればいいか分かりますが、VBは僕には分かりません。
NIFTYで、ログファイル名への変換というプロジェクトをやっているらしいのですが、
それが、DLLになっていて、VBからもアクセス出来たと思います。

---
as you like...
    e-mail VZY03312@nifty.ne.jp
           vzy03312@ha.bekkoame.ne.jp
Re: ロングファイル名への変換
#261
Author: Masahiro IZUHARA
Date: Tue, 07 Apr 1998 00:00
21 lines
1861 bytes
グループをあっちこっち移動して節操がありませんが、Followup-To:を
fj.os.ms-windows.programmingのみにします。

In article <6gb5qg$oc7$1@fu3.bekkoame.or.jp>, vzy03312@ha.bekkoame.ne.jp 
says...
>確か、GetFullPathNameでは、ショートファイル名からロングファイル名への変換は
>出来なかったと思います。
あ、そういう質問だったのね。てっきりGetFullPathNameの使い方が分からない
という質問だと思ってた。(^^;

fjのアーカイブサイトhttp://mitsuko.jaist.ac.jp/fj/ へ行って、今年3月の
fj.os.ms-windows.programmingの記事をサブジェクト「ロングファイル名への変換」
(おお、奇しくも同じサブジェクト)でサーチしてみてくれません?
同じ話題が出ています。

#今読んでいる途中ですが、実現するのは結構大変みたいです。

-- 
                                                               出原 正裕
                           izuha@hitachi-ns.co.jp/izuha@ba2.so-net.or.jp
Re: ロングファイル名への変換
#275
Author: System
Date: Thu, 09 Apr 1998 00:00
36 lines
1901 bytes
|>lpFilePart As long にしたのですが、だめでした。どうやら、値の送り方が間
違っ
|>ているのでかもしれません。すみませんが、サンプルを書いてはくださらないで
しょ
|>うか。
|どう「だめだった」んでしょうか。
|「GetFullPathName()のコールが実行時エラーになった」とか、「コールは
|できたけど値が正しく取得できない」とか書いてもらわないと...


Public Function GetLongName(FName As String) As String

    Dim IpFileName      As String * 255
    Dim nBufferLength   As Long
    Dim IpBuffer        As String * 255
    Dim IpFilePart      As Long
    Dim ret             As Long

    IpFileName = ""
    nBufferLength = 50
    IpFilePart = 1
    IpBuffer = FName

    ret = GetFullPathName(IpFileName, nBufferLength, IpBuffer, IpFilePart)

    MsgBox IpFileName
    MsgBox nBufferLength
    MsgBox IpBuffer
    MsgBox IpFilePart

End Function

としたのですが、IpBuffer には空っぽの文字列だけでした。
どうもうまくいきません。コールはできたけど正しく取得できません。
よろしくお願いします。
Re: ロングファイル名への変換
#281
Author: 渡邉 一紀
Date: Thu, 09 Apr 1998 00:00
54 lines
2463 bytes
>Public Function GetLongName(FName As String) As String
>
>    Dim IpFileName      As String * 255
>    Dim nBufferLength   As Long
>    Dim IpBuffer        As String * 255
>    Dim IpFilePart      As Long
>    Dim ret             As Long
>
>    IpFileName = ""
>    nBufferLength = 50
>    IpFilePart = 1
>    IpBuffer = FName
>
>    ret = GetFullPathName(IpFileName, nBufferLength, IpBuffer, IpFilePart)
>
>    MsgBox IpFileName
>    MsgBox nBufferLength
>    MsgBox IpBuffer
>    MsgBox IpFilePart
>
>End Function

パラメータが違いますね
下のコードで試してみてください

Declare Function GetFullPathName Lib "kernel32" Alias "GetFullPathNameA"
(ByVal lpFileName As String, ByVal nBufferLength As Long, ByVal lpBuffer As
String, ByVal lpFilePart As String) As Long

Public Function GetLongName(FName As String) As String

    Dim IpFileName      As String
    Dim nBufferLength   As Long
    Dim IpBuffer        As String
    Dim IpFilePart      As String
    Dim ret             As Long

    IpFileName = FName                     '対象ファイル
    IpBuffer = String$(255,CHR$(0))      'バッファー初期化
    nBufferLength = Len(IpBuffer)        'バッファーサイズ設定

    ret = GetFullPathName(IpFileName, nBufferLength, IpBuffer, IpFilePart)

    If ret<>0 then
        lpBuffer=Left$(lpBuffer,ret)
        MsgBox IpFileName
        MsgBox nBufferLength
        MsgBox IpBuffer
        MsgBox IpFilePart
    Else
        MsgBox "エラー"
    End If
End Function
Re: ロングファイル名への変換
#155
Author: System
Date: Sat, 11 Apr 1998 00:00
18 lines
1520 bytes

|パラメータが違いますね
|下のコードで試してみてください

|    IpFileName = FName                     '対象ファイル
|    IpBuffer = String$(255,CHR$(0))      'バッファー初期化
|    nBufferLength = Len(IpBuffer)        'バッファーサイズ設定
|


確かにバッファー初期化と送り先間違ってました。
上記の内容に修正をしてうまく動作するようになりました。
この度はどうもありがとうございました。

複数のディスクを一気に検索するソフト
まい ほーむぺーじ :  http://www.geocities.co.jp/SiliconValley/4378/
まい  めーるあどれす : system@tksoft.office.ne.jp
Thread Navigation

This is a paginated view of messages in the thread with full content displayed inline.

Messages are displayed in chronological order, with the original post highlighted in green.

Use pagination controls to navigate through all messages in large threads.

Back to All Threads