
No.2ベストアンサー
- 回答日時:
「指定した行のデータを書き換える」というのがちょっと気になるのですが、
書き換え前後で行の長さが同じでない限り、ファイルのその部分だけ書き換えて終わり
というわけにはいきません。
簡単に書くなら、
1) 書き換え対象のファイルを読み込み用にオープン
2) 新しいファイルを書き出し用にオープン
3) 読み込みファイルから一行読み込む
4) 読み込んだ行が書き換え対象の行なら
4.1)行を書き換える
5) 行を出力ファイルに書き出し
6) 読み込みファイルの終端に達するまで 3 ~ 5 を繰り返し。
のようになります。
結果が得られればいいのなら、わざわざCで組まないでPerl/sed/awkを
使うのが楽でいいと思います。
この回答への補足
自分でどこまでできたのか明示してなくすいませんでした。
ご回答の 4.1) の処理の仕方が質問の目的でした。
宜しくお願いします。
この回答へのお礼
お礼日時:2006/12/10 02:37
回答してくださった内容を読み違えており補足を書いた後に気が付きました。
新しいファイルに書き写していくやり方は考えてませんでした。
回答ありがとうございました!
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も見ています
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
エクセルVBA コードが同じでも...
-
ExcelをCSV書き出す場合のシー...
-
openした後、closeしないでプロ...
-
ReadLineでの読み出し行を指定する
-
MATLAB グローバル変数の宣言
-
JavaでCSVファイルを高速に読む...
-
VBAでCSVファイルの特定行を書...
-
VBAでCSVファイルを途中行まで...
-
C言語でのファイルのデータ更...
-
CSVファイルの内容を編集する方...
-
window.open でのファイル指定方法
-
vba dir の相対パス
-
バッチファイルの作り方(CSV→...
-
ファイルアップロード時の経過表示
-
アップローダがうまく作れない
-
fgets で値が取得できない
-
テキストファイルになにも入っ...
-
readdir()で得られるファイル・...
-
VBでファイル分割の方法
-
ディレクトリの判別
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
エクセルVBA コードが同じでも...
-
VBAでCSVファイルを途中行まで...
-
MATLAB グローバル変数の宣言
-
ExcelをCSV書き出す場合のシー...
-
VBAでCSVファイルの特定行を書...
-
VBAで巨大なファイルの途中から...
-
openした後、closeしないでプロ...
-
ReadLineでの読み出し行を指定する
-
VBScriptでファイル保存先のデ...
-
JavaでCSVファイルを高速に読む...
-
perlにて2つのファイル比較
-
CSVが可変長の場合の検索方法
-
拡張子 ”log” と ” dat” の違い
-
Perlの変数に文字数制限(容量...
-
合致する番号のデータを抽出す...
-
C言語でのファイルのデータ更...
-
perlで、後ろの行を読んで、前...
-
Perlを改造してエラーチェック...
-
csvファイル改行コードの置換に...
-
perlで容量の大きいCSVファイル...
おすすめ情報