>ファイルの名前を取得し、それをひとつひとつ変数に入れたいのですが、
>フォルダの中にファイルがいくつ入っているかわからないので、
>変数の定義のしようがありません。どのようにすればいいのか見当もつかず困っています。
少し難しいですが、大体の流れを書いておきます。
実際にファイル名を列挙するにはFindFirstFile関数などを使いますが、その辺のコードは省略します。
<ファイルの名前を列挙する前に、ファイル数がわかる場合>
コード: 全て選択
Dim NameList As **Char
Dim i As Long
'使い始め
NameList=malloc(SizeOf(*Char)*10) '←「10」の部分をファイル数に変えてください
NameList[0]=malloc(25) '←格納したいファイルの名前+1バイトを指定してください。サイズは少し多めにしておいてもかまいません
lstrcpy(NameList[0],"filename.txt") '←ファイル名を指定してください
NameList[1]=malloc(20)
lstrcpy(NameList[1],"filename2.txt")
/*以後略*/
'使い終わり
For i=0 To 9 '←ファイル数-1を指定してください
free(NameList)
Next
free(NameList)
<列挙してみるまでファイル数が確定しない場合>
コード: 全て選択
Dim NameList As **Char
Dim FileCount As Long
Dim i As Long
'使い始め[ここから~ここまで を必要回数呼び出してください(ファイル列挙のDo~Loop内で呼び出してもよいでしょう)]
'==ここから==
If FileCount Then
NameList=realloc(NameList,SizeOf(*Char)*(FileCount+1))
Else
NameList=malloc(SizeOf(*Char))
End If
NameList[FileCount]=malloc(25) '←格納したいファイルの名前+1バイトを指定してください。サイズは少し多めにしておいてもかまいません
lstrcpy(NameList[FileCount],"filename.txt") '←ファイル名を指定してください
FileCount=FileCount+1
'==ここまで==
'使い終わり
For i=0 To FileCount-1
free(NameList)
Next
free(NameList)