No.2ベストアンサー
- 回答日時:
「指定した行のデータを書き換える」というのがちょっと気になるのですが、
書き換え前後で行の長さが同じでない限り、ファイルのその部分だけ書き換えて終わり
というわけにはいきません。
簡単に書くなら、
1) 書き換え対象のファイルを読み込み用にオープン
2) 新しいファイルを書き出し用にオープン
3) 読み込みファイルから一行読み込む
4) 読み込んだ行が書き換え対象の行なら
4.1)行を書き換える
5) 行を出力ファイルに書き出し
6) 読み込みファイルの終端に達するまで 3 ~ 5 を繰り返し。
のようになります。
結果が得られればいいのなら、わざわざCで組まないでPerl/sed/awkを
使うのが楽でいいと思います。
この回答への補足
自分でどこまでできたのか明示してなくすいませんでした。
ご回答の 4.1) の処理の仕方が質問の目的でした。
宜しくお願いします。
回答してくださった内容を読み違えており補足を書いた後に気が付きました。
新しいファイルに書き写していくやり方は考えてませんでした。
回答ありがとうございました!
No.1
- 回答日時:
仕事目的なら、sedやperlスクリプトを使ったほうが手っ取り早いかも。
こんな感じ(ファイルa.txtの4行目をtestに置き換える。排他制御は考えない):
perl -i.bak -pe 'BEGIN{$l=shift;$s=shift};$_=$s.$/ if $. == $l' 4 test a.txt
目的がCプログラムの勉強なら、fopen/fgets/fputsの使い方を理解していれば難しくないと思います。perlで書いたのと処理速度がそんなに変わらないかもしれませんが。
mmapして一気に移動させたりすれば多少速いかも。
逆に「fopen? 食べた事ない」とかいう話なら、Cプログラミングの参考書にお金を使う事を考慮したほうが良いです。自分に投資。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) VBAのユーザーフォームのテキストボックスに入力制限をしたい 6 2022/11/15 08:28
- Visual Basic(VBA) 3つのプロシージャをまとめたら実行時エラー発生で対応不能 6 2022/05/17 01:47
- Excel(エクセル) エクセル 任意の列数で分割する方法 3 2022/07/31 14:58
- Visual Basic(VBA) ファイル全てを .xlsm に変更したところ、プログラムが途中で落ちてしまっています 17 2022/12/07 12:03
- Visual Basic(VBA) 複数ブックの統合について Excel VBA 1 2022/05/13 09:48
- Excel(エクセル) マクロか関数で処理したいのですが、教えて頂けませんか。 8 2022/10/31 15:18
- その他(Microsoft Office) マクロVBAについて 1 2022/09/06 18:12
- Excel(エクセル) 【VBA】指定フォルダに格納中のテキストファイルをエクセルで処理し結果のエクセルを新規フォルダに保存 1 2022/03/25 14:19
- UNIX・Linux サーバー間のデータコピー(データ形式とデーターフォーマットの変換あり。一定間隔で処理) 2 2023/08/22 22:15
- その他(データベース) Excel VBA 転記について 1 2022/04/20 16:55
このQ&Aを見た人はこんなQ&Aも見ています
-
好きなおでんの具材ドラフト会議しましょう
肌寒くなってきて、温かい食べ物がおいしい季節になってきましたね。 みなさんはおでんの具材でひとつ選ぶなら何にしますか? 1番好きなおでんの具材を教えてください。
-
家・車以外で、人生で一番奮発した買い物
どんなものにお金をかけるかは人それぞれの価値観ですが、 誰もが一度は清水の舞台から飛び降りる覚悟で、ちょっと贅沢な買い物をしたことがあるはず。
-
土曜の昼、学校帰りの昼メシの思い出
週休2日が当たり前の今では懐かしい思い出ですが、昔は土曜日も午前中まで学校や会社がある「半ドン」で、いつもよりちょっと早く家に帰って食べる昼ご飯が、なんだかちょっと特別に感じたものです。
-
牛、豚、鶏、どれか一つ食べられなくなるとしたら?
牛肉、豚肉、鶏肉のうち、どれか一種類をこの先一生食べられなくなるとしたらどれを我慢しますか?
-
ギリギリ行けるお一人様のライン
おひとり様需要が増えているというニュースも耳にしますが、 あなたが「ギリギリ一人でも行ける!」という場所や行為を教えてください
-
ファイル内のデータを1行削除する方法
C言語・C++・C#
-
ファイル書込みで一行もしくは部分的に上書きする
PHP
関連するカテゴリからQ&Aを探す
おすすめ情報
- ・漫画をレンタルでお得に読める!
- ・【大喜利】【投稿~11/22】このサンタクロースは偽物だと気付いた理由とは?
- ・お風呂の温度、何℃にしてますか?
- ・とっておきの「まかない飯」を教えて下さい!
- ・2024年のうちにやっておきたいこと、ここで宣言しませんか?
- ・いけず言葉しりとり
- ・土曜の昼、学校帰りの昼メシの思い出
- ・忘れられない激○○料理
- ・あなたにとってのゴールデンタイムはいつですか?
- ・とっておきの「夜食」教えて下さい
- ・これまでで一番「情けなかったとき」はいつですか?
- ・プリン+醤油=ウニみたいな組み合わせメニューを教えて!
- ・タイムマシーンがあったら、過去と未来どちらに行く?
- ・遅刻の「言い訳」選手権
- ・好きな和訳タイトルを教えてください
- ・うちのカレーにはこれが入ってる!って食材ありますか?
- ・おすすめのモーニング・朝食メニューを教えて!
- ・「覚え間違い」を教えてください!
- ・とっておきの手土産を教えて
- ・「平成」を感じるもの
- ・秘密基地、どこに作った?
- ・【お題】NEW演歌
- ・カンパ〜イ!←最初の1杯目、なに頼む?
- ・一回も披露したことのない豆知識
- ・これ何て呼びますか
- ・初めて自分の家と他人の家が違う、と意識した時
- ・「これはヤバかったな」という遅刻エピソード
- ・これ何て呼びますか Part2
- ・許せない心理テスト
- ・この人頭いいなと思ったエピソード
- ・牛、豚、鶏、どれか一つ食べられなくなるとしたら?
- ・好きなおでんの具材ドラフト会議しましょう
- ・餃子を食べるとき、何をつけますか?
- ・あなたの「必」の書き順を教えてください
- ・ギリギリ行けるお一人様のライン
- ・10代と話して驚いたこと
- ・大人になっても苦手な食べ物、ありますか?
- ・14歳の自分に衝撃の事実を告げてください
- ・家・車以外で、人生で一番奮発した買い物
- ・人生最悪の忘れ物
- ・あなたの習慣について教えてください!!
- ・都道府県穴埋めゲーム
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
VBAでCSVファイルの特定行を書...
-
VBAでCSVファイルを途中行まで...
-
エクセルVBA コードが同じでも...
-
VBAで巨大なファイルの途中から...
-
ExcelをCSV書き出す場合のシー...
-
動画像から静止画を取り出すには
-
ReadLineでの読み出し行を指定する
-
Monster'sの改造・・・ボスモン...
-
openした後、closeしないでプロ...
-
JavaでCSVファイルを高速に読む...
-
Perlの変数に文字数制限(容量...
-
awkスクリプトでダブルクォーテ...
-
close()で例外が投げられる理由
-
window.open でのファイル指定方法
-
perlのcdについて
-
MATLABのm-fileについて
-
ディレクトリ名を取得したい
-
PerlからのCSV出力
-
バッチファイルの作り方(CSV→...
-
Firefox で file:// で始まる U...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
VBAでCSVファイルを途中行まで...
-
VBAでCSVファイルの特定行を書...
-
ExcelをCSV書き出す場合のシー...
-
エクセルVBA コードが同じでも...
-
openした後、closeしないでプロ...
-
ReadLineでの読み出し行を指定する
-
VBAで巨大なファイルの途中から...
-
JavaでCSVファイルを高速に読む...
-
perlで、後ろの行を読んで、前...
-
perlで容量の大きいCSVファイル...
-
MATLAB グローバル変数の宣言
-
Perlの変数に文字数制限(容量...
-
VB6.0でDB接続する際に切断時の...
-
エクセルマクロについて CSVフ...
-
C言語でのファイルのデータ更...
-
データファイルをプロットする(...
-
ファイルからのデータ読み込み...
-
2つのCSVファイルをマッチング
-
csvファイル改行コードの置換に...
-
行の途中のデータを置き換えたい
おすすめ情報