SolarisサーバーからWininetAPIをファイル一覧を取得するFTPクライアントプログラムについての質問です。
FtpFindFirstFile関数を使用しWIN32_FIND_DATA構造体から取得したファイル名をリストボックスに表示しています。
このとき文字化けしてしまい正しいファイル名を取得できません。(タイムスタンプの同様です)
EUCコードからS-JISへの変換が正しく行われていないようなのですが解決方法をご存知の方がおられましたら宜しくお願い致します。

このQ&Aに関連する最新のQ&A

A 回答 (3件)

NextFTPで試したところ、やはり漢字ファイル名は文字化けしますが、EUC→SJISに


変換するオプションを選ぶと正しく表示されました。
つまり、EUC→SJIS変換は自動的に行われないので、FTPクライアント側で変換する
必要があります。
具体的な変換方法ですが、WindowsAPIに変換する関数がないようなので、
フリーのDLLを使うか自作するしかないですね。

参考URL:http://www.toxsoft.com/nextftp/index.html
    • good
    • 0
この回答へのお礼

toda36様、ありがとうございました!!
とても助かりました。やっと解決できそうです。
ありがとうございました。

お礼日時:2001/11/28 21:59

Solarisは触れたことがないですが、


EUCコードからシフトJISに変換を行うライブラリがあるようです。

参考URLからDLしてください

使用方法は↓
http://www.geocities.co.jp/SilkRoad/4511/vb/nkf3 …

NKF32で検索をすると、結構ヒットします。

参考URL:http://www.vector.co.jp/soft/win95/util/se033243 …
    • good
    • 0
この回答へのお礼

御指導ありがとうございます。
参考にさせて頂きました。とても助かりました。

お礼日時:2001/11/28 21:56

うちもSolarisサーバーですが、


↓のVBFTPで試したら、確かに漢字を含むファイル名は
化けます。
半角ファイル名の送信/受信も動きません。
# 明日、少し調べてみます。

参考URL:http://www.microsoft.com/japan/support/kb/articl …
    • good
    • 0
この回答へのお礼

回答ありがとうございます。
正確には文字化けした日付とファイル名が一緒になって表示されるみたいです。
どうかよろしくお願いします。

お礼日時:2001/11/27 20:40

このQ&Aに関連する人気のQ&A

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人が検索しているワード

このQ&Aと関連する良く見られている質問

QExcelVBAで「Shift_JIS(MS932)」コードを取得したい

こんにちは。
ExcelVBAで開発している私です。
ExcelVBAで「Shift_JIS(MS932)」コードを取得したいのですが、方法が見つかりません。
ご存知のかたいらっしゃいましたら、宜しくお願いします。

Aベストアンサー

勘違いしているかも知れませんが
hex(asc("日"))
で「日」のSHIFT_JISコード「93FA」が取り出せます
ちなみに
hex(ascW("日"))unicode「65E5」が取り出せます。

もしかしたら、環境によって、動作が異なるかも知れませんので、注意。

Qファイル・タイムスタンプの取得

ExcelVBAを使用しています。
FileDateTime()を使用すると、起動時の日時が取得されます・
これは、Excelを起動すると、
(1)ファイル・タイムスタンプが起動した時の時間に置き換わる。
(2)保存なしで終了すると、起動前の元のタイムスタンプに戻る、
の為と思われます。

起動前の元のタイムスタンプを取得する方法がありましたら
ご教示よろしくお願いします。

Aベストアンサー

ThisWorkbook.BuiltinDocumentProperties("Last save time").Value

QエクセルVBA ファイル名とタイムスタンプのリストを取得したい

フォルダの中から作成日時を指定しファイルを開き、データ取得して閉じます。数千個の中から百個を開くイメージです。FSOを使用してますが、ファイル名タイムスタンプの取得は結構時間がかかり、1ファイル当たりコンマ数秒、全部集めると結構な時間になります。

DOSコマンドでDirなら全部でコンマ数秒のイメージがあるので、こちらに変更しようと考えてます。問題は手順です。
①シートにDOSコマンドを書き並べる
②バッチファイルに書き込み
③プロセスIDを取得し終了監視しつつ実行
④結果の入ったファイルをエクセルに読み込み、ファイル名とタイムスタンプ取得
⑤タイムスタンプからをファイルを選び、開く

無理とは言いません、全部心あたりはあります。が、私には少々道のり遠いです、特に③あたり。
もうちょっと簡単で速い方法はないでしょうか?

無ければ諦めて気合入れて上記でやります。

Aベストアンサー

指定したフォルダの下にあるファイル名とそのタイムスタンプを取得できれば良いのですよね。
サブフォルダを無視して良いなら、こんなのはいかがでしょうか。
このサンプルプログラムは、"C:\Users\xxxx\Documents\"フォルダ内のファイル名をDir関数で順次取得し、さらに、FileDateTime関数でタイムスタンプを取得。それを Debug.Print しています。

Sub test()
Dim MyPathName As String
Dim MyFileName As String
Dim MyTimeStamp As String
Dim cnt As Long
MyPathName = "C:\Users\takashi\Documents\教えてGoo - コピー\"
MyFileName = Dir(MyPathName & "*.*")
Do While MyFileName <> ""
cnt = cnt + 1
MyTimeStamp = FileDateTime(MyPathName & MyFileName)
Debug.Print MyTimeStamp & " " & MyFileName
MyFileName = Dir
Loop
MsgBox cnt
End Sub

指定したフォルダの下にあるファイル名とそのタイムスタンプを取得できれば良いのですよね。
サブフォルダを無視して良いなら、こんなのはいかがでしょうか。
このサンプルプログラムは、"C:\Users\xxxx\Documents\"フォルダ内のファイル名をDir関数で順次取得し、さらに、FileDateTime関数でタイムスタンプを取得。それを Debug.Print しています。

Sub test()
Dim MyPathName As String
Dim MyFileName As String
Dim MyTimeStamp As String
Dim cnt As Long
MyPathName = "C:\Users\takas...続きを読む

QVB2005でUTF-8からshift_JISに変換する方法

VB2005の初心者です。

UTF-8のXMLデータで、一部日本語の項目が化けているのでshift_JISに変換したいのですが、やり方が分りません。

下記のとおり、XMLデータから項目を抽出して、ログに出力すると化けてしまいます。

Dim CreatorInfodNode As Xml.XmlNodeList
CreatorInfodNode = xmlDoc.SelectNodes("/Mml/MmlBody/MmlModuleItem/docInfo[@contentModuleType=contains(@contentModuleType,'patientInfo')]" + _
"/mmlCi:CreatorInfo/mmlPsi:PersonalizedInfo/mmlPsi:personName/mmlNm:Name/mmlNm:fullname", nsmgr1)

LbLogFlg = WriteLogFile("fullname:" + CreatorInfodNode(0).InnerText.Trim)

↓ログの出力結果
fullname:?????????????????????

皆様の知恵をお借りできれば幸いです。
よろしくお願い致します。

VB2005の初心者です。

UTF-8のXMLデータで、一部日本語の項目が化けているのでshift_JISに変換したいのですが、やり方が分りません。

下記のとおり、XMLデータから項目を抽出して、ログに出力すると化けてしまいます。

Dim CreatorInfodNode As Xml.XmlNodeList
CreatorInfodNode = xmlDoc.SelectNodes("/Mml/MmlBody/MmlModuleItem/docInfo[@contentModuleType=contains(@contentModuleType,'patientInfo')]" + _
"/mmlCi:CreatorInfo/mmlPsi:PersonalizedInfo/mmlPsi:personName/mmlNm:Name/mmlNm:fu...続きを読む

Aベストアンサー

重要なのは、WriteLogFileの中身です。

どういう方法でログを出力しているのか補足してみてください。

QFindプロパティを取得できません

数日前マクロをはじめた初心者です。

"・・・Findプロパティを取得できません"というエラーの解決方法がわかりません。シートには以下の内容が記述されています。

-------------------------------------------------(以下シート)
A列    B列    C列
空白   田中    北海道札幌市中央区宮の森12345
・     鈴木    北海道札幌市中央区宮の森45678
・     佐藤    北海道札幌市北区あいの里78956


AA列      AB列
1      北海道札幌市中央区
2      北海道札幌市北区
3      北海道札幌市東区

-------------------------------------------------(以上シート)

B列(人名)のC列(住所)をAB列(地域)に対応したAA列(番号)で割り振りたいのです。
そこで以下のマクロを作りました。
-------------------------------------------------(以下マクロ)
Sub macro1()
Dim i As Integer, j As Integer
i = 1
j = 1
Do While Cells(i, "B").Value <> ""
If Application.WorksheetFunction.Find(Cells(j, "AB"), Cells(i, "C"), 1) = 1 Then
Cells(i, "A") = Cells(j, "AA").Value
i = i + 1
j = 1
Else
j = j + 1
End If
Loop
End Sub
-------------------------------------------------(以下マクロ)

A列
1
1
2

と入る予定でつくったのですが、最期の 2 が入らずエラーとなります。
どこが間違いかわかりません。
ご教授願います。

数日前マクロをはじめた初心者です。

"・・・Findプロパティを取得できません"というエラーの解決方法がわかりません。シートには以下の内容が記述されています。

-------------------------------------------------(以下シート)
A列    B列    C列
空白   田中    北海道札幌市中央区宮の森12345
・     鈴木    北海道札幌市中央区宮の森45678
・     佐藤    北海道札幌市北区あいの里78956


AA列      AB列
1    ...続きを読む

Aベストアンサー

Application.WorksheetFunction.findは見つからない場合はエラーを返すので、on error などを使って見つからない場合の処理が必要だと思います。

またはApplication.WorksheetFunction.findの代わりにinstrで処理すれば見つからなくてもエラーは起きないので、
>If Application.WorksheetFunction.find(Cells(j, "AB"), Cells(i, "C"), 1) = 1 Then

If InStr(Cells(i, "C"), Cells(j, "AB")) = 1 Then
に変更してはどうでしょうか?


人気Q&Aランキング

おすすめ情報