- 締切済み
ファイルの取得
簡単な勤怠管理システムを作成したいと思ってます。 勤怠管理表を各自記入し、指定のフォルダにいれます。 その際、そのフォルダに自動でアクセスし自動でファイル名を取って、検索するようなプログラムを作成したいのですが、どのようなプログラムを書けばいいでしょうか。ご教示くださいませんでしょうか。 VBAやVCではなく、C言語でこの処理をやりたいのですが。
- みんなの回答 (4)
- 専門家の回答
みんなの回答
- meruty
- ベストアンサー率81% (9/11)
>VBAやVCではなく、C言語でこの処理をやりたいのですが 「Cの標準ライブラリ関数だけを使いたい」と読み取ってよろしいのでしょうか??であれば、処理系によってできる/できないがあると思います。WindowsAPIを使用してもよいのでしたら、#3で回答されているとおりです。 ファイルシステムは機種依存なので、C言語の標準ライブラリにはないのではないかと思われます。 質問者さんが使用しているCのライブラリに「findfirst」や、「_findfirst」などという関数はありますか? stdio.h、io.h、dos.h あたりを探してみてください。
- GOGOV
- ベストアンサー率54% (12/22)
ファイル名の取得についての回答です。 FindFirstFile()、FindNextFile()でフォルダ内のファイル名を取得できます。 ファイル名はこれらの第2パラメータ(WIN32_FIND_DATA型)のcFileNameで確認できます。
- nerosuke
- ベストアンサー率33% (39/115)
質問を読む限りプログラム組むまでもなくWindowsのファイル検索で 事足りるとおもうのですが、 >>自動でアクセスし自動でファイル名を取って、検索 この自動でって所に質問者の作成意図があるのかと・・・ 思うのですが、判断できません。 例えば 0100鈴木.xlsというファイルをフォルダに入ってたとして、 どういう結果を求めているのか? その辺を具体的に質問されれば、良い回答を得られると思いますよ
- chie65536
- ベストアンサー率41% (2512/6032)
余りにも漠然とし過ぎです。これで「どのようなプログラムを書けば?」と言われても回答は無理です。もう少し具体的に書かなければ、どうしようもありません。 例えば、 「勤怠管理表を各自で記入し、各自で、ファイルサーバー上の書き込みを許可した特定のフォルダにコピーしてもらいます。その時、ファイル名は<ログイン名>+"_KINTAI.TXT"にしてもらいます。例えばログイン名が"npc0222"なら"npc0222_KINTAI.TXT"になります」 と言う場合と 「勤怠管理表を各自で記入し、各自で、自分のパソコンの決められたフォルダ(例えば、"C:\KINTAI\")に保存してもらいます。その時、ファイル名は決まっていません。フォルダ内を検索して調べる必要があります」 と言う場合では、書くべきプログラムはまったく違う物になります。 上記の例で示した程度までの細かさで、システム仕様が決まってないとプログラムを書くのは無理です。細かい仕様が決まれば、自然にどのようなプログラムを書けば良いか見えて来る筈です。 どんなに熟練のプログラマであっても、単に 「ファイルを探す」 とだけしか指示されず他に情報が何も無ければプログラムは絶対に書けません。 しかし、C言語を覚えたての人でも 「"C:\KINTAI\"フォルダに入っている、ファイル名が、"KINTAI"で始まりその後にユーザー名を示す任意の文字があって、拡張子が".TXT"になっていて、かつ、ファイルの更新日付が今日になっているファイルを探し、見付かったらファイルをオープンして1行目に"YYYY/MM/DD"の形式で日付が書いてある事を確認する」 と細かく指示されればある程度のプログラムは書けます。 冒頭で「回答は無理」と書いた理由は、質問者さんが 「ファイルを探す」 のレベルで 「どのようなプログラムを書けば?」 と聞いているからです。
補足
勤怠管理表を各自で記入し、共有フォルダに格納します。その時、ファイル名は(社員番号、名前、例えば0100鈴木.xls)です。このフォルダ内を検索してファイル名を調べる方法のヒントを教えてください。