ファイル読み込み初歩 – プログラミング – Home

通知
すべてクリア

ファイル読み込み初歩


にゃんこ
 にゃんこ
(@にゃんこ)
ゲスト
結合: 19年前
投稿: 4
Topic starter  

こんにちはm(__)m
私は今Visual C++2005 Express Edition Beta2を使っているものです。
まだ初心者なので段階をおっている最中です。
ファイルをオープンして中身を表示させる事はできました。
それで次にファイルの例えば3行目を表示させるにはどうしたらよいでしょうか。
SetFilePonterのようなものでしょうか・・・??
どうかお願いします。


引用解決済
トピックタグ
tib
 tib
(@tib)
ゲスト
結合: 22年前
投稿: 468
 

1行目、2行目を読み飛ばして下さい。

> ファイルをオープンして中身を表示させる事はできました。
これをどのようにしたのかが解ればもう少し具体的に言えるのですが。


返信引用
PATIO
(@patio)
Famed Member
結合: 3年前
投稿: 2660
 

多分、テキストファイルを読んで表示しているのではないかと思うのですが、
テキストファイルの場合、改行があると行が切り替わりますからファイル内の改行の位置が
わからないとSetFilePonter等で位置を指定することはできないと思います。
tibさんが書かれているように中身を読み込んでいって行の区切りを判別しながら、
1行目、2行目を読み飛ばすしかないと思います。テキストファイルの一行単位で読み込む
関数があるのでそれを使って不要な行を読み飛ばすのが一番簡単でしょう。


返信引用
にゃんこ
 にゃんこ
(@にゃんこ)
ゲスト
結合: 19年前
投稿: 4
Topic starter  

ファイルの読み込みは
hFile = CreateFile(_T(c:/sample.txt),GENERIC_READ,0,NULL,OPEN_ALWAYS,
FILE_ATTRIBUTE_NORMAL,NULL);
SetFilePointer(hFile,0,NULL,FILE_BEGIN);
ReadFile(hFile,Buff,sizeof(Buff),&Dwd,NULL);
ret = MessageBox(hWnd,Buff,にゃーす,MB_YESNO);

のように行いました。
その一行単位で読み込む関数の名前だけで良いので教えてくれませんか??
getline関数の事でしょうか。
できれば使い方も失礼ですが簡単でよいのでお願いします


返信引用
Blue
 Blue
(@Blue)
ゲスト
結合: 20年前
投稿: 1467
 

> その一行単位で読み込む関数の名前だけで良いので教えてくれませんか??
CreateFileを使ったファイルの読込みの場合、行という概念は持っていません。

ReadFileで取得したBuffから改行文字を探して行を認識することになります。

C言語の標準関数に fgets というのがあります。
これは fopen で取得したFILEポインタ型変数に対して使えます。

C++の機能を使っていい場合は、std::getlineとかを利用すればいいです。


返信引用
tib
 tib
(@tib)
ゲスト
結合: 22年前
投稿: 468
 

> その一行単位で読み込む関数の名前だけで良いので教えてくれませんか??
CStdioFile::ReadString()

C++よりはCっぽくなりますが、
fopen() ~ fgets() ~ fclose()
という手もあります。

上の例でReadFile()により表示したい部分が確実に取り込まれているのなら、strtok()な
どで必要な部分を切り出すという手もあります。


返信引用
επιστημη
 επιστημη
(@επιστημη)
ゲスト
結合: 21年前
投稿: 600
 

fopen + fgets
もしくは
ifstream + getline
かな。


返信引用
Blue
 Blue
(@Blue)
ゲスト
結合: 20年前
投稿: 1467
 

> Visual C++2005 Express Edition Beta2
なら
なんでもいいのでしたら、プロジェクトそのものを
C++/CLI(MC++)にして、

System::IO::StreamReaderクラスのReadLineメソッドを使うとか。

# これはさすがに書き換えるのはめんどくさそう。


返信引用
PATIO
(@patio)
Famed Member
結合: 3年前
投稿: 2660
 

今のやり方的にはC++と言うよりもCと言う感じなので
取り敢えずは標準関数を使うやり方にした方がわかりやすいかなと思います。
fopen、fgets、fcloseですね。
少なくともCの標準関数くらいは一通り目を通しておきましょう。
この辺はHELPで引けば出てくると思います。
どんな関数があるのか位は大体で良いので把握しておかないと
いちいち、掲示板で聞いていたのでは効率が悪すぎますからね。


返信引用
にゃんこ
 にゃんこ
(@にゃんこ)
ゲスト
結合: 19年前
投稿: 4
Topic starter  

皆さんいろいろありがとうございます。
さっそくやってみます。
PATIOさんが言うように標準関数ぐらいはもっと勉強すべきですね・・・
いたらない点が多々あると思いますが今後もお願いします。


返信引用

返信する

投稿者名

投稿者メールアドレス

タイトル *

プレビュー 0リビジョン 保存しました
共有:
タイトルとURLをコピーしました