HSPポータル
サイトマップ お問い合わせ


HSPTV!掲示板


未解決 解決 停止 削除要請

2008
0407
KENTAヌル終端文字列を文字列に変換する4解決


KENTA

リンク

2008/4/7(Mon) 21:59:15|NO.14958

FindFirstFile、FindNextFile関数で取得されたヌル終端文字列のファイル名を
memcpyで文字列に変換するのですが、長いヌル終端文字列のファイル名になってしまうと
正確に変換できなくなってしまいます。
長いファイル名でも、正確に変換できる方法があるなら教えてください。



この記事に返信する


YRIN

リンク

2008/4/8(Tue) 17:41:54|NO.14993

>>正確に変換できなくなってしまいます
具体的に、例えばファイル名の後に意味不明な文字列がくっつくとか、
途中で途切れてしまうとか、完全に意味不明な文字列になってしまうとか書いてください。

それと、まずはソースを見せてください。



KENTA

リンク

2008/4/8(Tue) 20:01:10|NO.14996

>途中で途切れてしまうとか、完全に意味不明な文字列になってしまうとか書いてください。
ファイル名が途中で途切れてしまいます。

>それと、まずはソースを見せてください。
私の作成したモジュール「dirlistX.hsp」をダウンロードしてください。
ヌル終端文字列のファイル名はdirlistX.hspの82行目で変換しています。
(module->dirlistX->dirlistX->dirlistX.hsp)
http://briefcase.yahoo.co.jp/kenta_3759/

・正確に変換できなくなることを確かめるスクリプト

//dirlistXでファイル名が長い時に取得できなくなることの確認スクリプト #include "dirlistX.hsp" chdir dir_desktop data="" FileName="dirlistXのファイル名が長い時に正確に取得できなくなるテスト用のファイル.hsptest" bsave FileName,data,0 dirlistX FileList,"*.hsptest",0,0 mes FileList wait 100 delete FileName stop



YOYO

リンク

2008/4/8(Tue) 20:12:04|NO.14998

単にコピー先の変数のサイズが足りていないだけでは。
ファイル名は最大260バイトなので、充分なサイズを確保すれば大丈夫。



KENTA

リンク

2008/4/8(Tue) 20:36:58|NO.15000

ありがとうございます。
十分なサイズを確保したら、長いファイル名でも取得できるようになりました。



ONION software Copyright 1997-2023(c) All rights reserved.