- ベストアンサー
テキストファイルの特定行の削除方法
Accessからテキストファイルのオープンし、特定行を削除してクローズしたいです。どうすれば良いでしょうか。
- ton_jiru
- お礼率73% (229/311)
- Visual Basic
- 回答数2
- ありがとう数3
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
- ベストアンサー
FileRead()は、指定のテキストファイルから1行づつ読み込んで返す関数です。 これを利用して、1行づつチェックして書き出すのが一つの方法です。 もっと、簡単なのは、FileReadArray() で一気に変数に呼び込むことです。 UBound()などで配列に呼び込んだ行数を取得してチェックして不要行を削除します。 FileWrite()で書き出します。 Public Function FileRead(ByVal FileName As String, Optional isStop As Boolean = False) As String On Error GoTo Err_FileRead Static isOpen As Boolean Static fso As FileSystemObject Static fil As File Static txs As TextStream If Not isOpen Then isOpen = True Set fso = New FileSystemObject Set fil = fso.GetFile(FileName) Set txs = fil.OpenAsTextStream(ForReading, TristateUseDefault) End If FileRead = IIf(fil.Name = FileName, txs.ReadLine, "") Exit_FileRead: If Len(FileRead) = 0 Or isStop Then isOpen = False Set txs = Nothing Set fil = Nothing Set fso = Nothing End If Exit Function Err_FileRead: Resume Exit_FileRead End Function Public Function FileReadArray(ByVal FileName As String) As String() On Error GoTo Err_FileReadArray Dim fso As FileSystemObject Dim fil As File Dim txs As TextStream Dim strText As String Dim strTexts() As String Set fso = New FileSystemObject Set fil = fso.GetFile(FileName) Set txs = fil.OpenAsTextStream(ForReading, TristateUseDefault) strText = txs.ReadAll strTexts = Split(strText, Chr$(13) & Chr$(10)) Exit_FileReadArray: FileReadArray = strTexts() Exit Function Err_FileReadArray: MsgBox Err.Description & "(FileReadArray)", vbExclamation, " 関数エラーメッセージ" strTexts() = Split("") Resume Exit_FileReadArray End Function Public Function FileWrite(ByVal FileName As String, _ ByVal Text As String) As Boolean On Error GoTo Err_FileWrite Dim fso As FileSystemObject Dim txs As TextStream Set fso = New FileSystemObject Set txs = fso.CreateTextFile(FileName, True) txs.Write Text FileWrite = True Exit_FileWrite: Exit Function Err_FileWrite: MsgBox Err.Description & "(FileWrite)", vbExclamation, " 関数エラーメッセージ" Resume Exit_FileWrite End Function
その他の回答 (1)
わかりやすい手順としては、 ファイルを仮テーブルに1行ずつ読み込み、 特定行をテーブルから削除して、 全レコードを新規に書き出す。 わからない部分を特定していただけると、もっと具体的にお答えできると思います。
お礼
ありがとうございます。
関連するQ&A
- ファイルの中の特定の行だけを削除したい
あるファイルの特定の行だけを削除したいのですが、高速に行う方法はありませんか? とあるファイルがあり、これは数行~数万行にも及ぶ可能性のある大規模なファイルです。 このファイルの、特定の行を検索してその行だけ削除し、空いてしまった行は詰めたいのですが、どのようにすれば高速に行えますか? かなり遅い方法だと、 xxx = "hoge\n" arr = [] f = open("file") f.each{|line| if line != xxx then arr<<line end } f.close open("file", "w").puts arr.join() などが考えられるのですが、遅すぎて使えないはずです。 速度が求められる処理のため、困ってます。 もしご存じの方がいらっしゃいましたら、教えて頂けませんか?
- ベストアンサー
- Ruby
- 100万行のテキスト ファイル サクサク動く?
バックアップ、復元ソフトを作りながらC#を勉強してます。 復元するために、HDD内のファイルの情報(パス)を記録しておく必要があります。(あると思っている。違うのかもしれない。) そうするとHDD内の100万個のデータに対し、100万行のテキストファイルを作ることになります。 普段こんな膨大な行数のファイルを扱ったことはありませんが、オープンやクローズ、編集などサクサク動くものなのでしょうか?
- ベストアンサー
- C・C++・C#
- テキスト中の特定の文字を含む行を丸ごと削除する機能
テキスト中で、ある特定の文字を含んでいる行を、丸ごと一括で削除できるソフトはありませんか? 例えば、 あ□いいいうううええお ああ○いいううええおお ○あああいいいううええ あいい△ううううええお というテキストで、○を含む行だけを丸ごと削除すると言うことです。 よろしくお願いします。 市販のソフトではWordがあります。
- ベストアンサー
- フリーウェア・フリーソフト
- バッチファイルを使ってテキストファイルの任意の行を削除したい
こんにちは。 バッチファイルを使って、テキストファイルの任意の行を削除したいのですが、可能でしょうか? 今困っているのは、あるファイルの1行目と2行目と最後の行を削除したいのですが、コマンドがわかりません。 いろいろ調べてみたのですが、わかりませんでした。 よろしくお願いします。
- ベストアンサー
- その他(プログラミング・開発)
- テキストで特定の文字列を含む行を削除
テキストエディタで特定文字列を含む行と空白の行を削除したいです。 このようなことができるフリーのソフトがあったら教えてください。 テキストデータは数メガになりますのでメモ帳のような簡単なエディタでは開けません。 また、エクセルでも最大行を超えるため読み込めません。
- ベストアンサー
- Windows XP
- テキストファイル内の特定行の一括変換
テキストファイルがたくさんあります。 そのすべてのテキストファイルの中の特定の行を一括で変換する方法をご存じありませんでようか。 よろしくお願いします。
- 締切済み
- その他([技術者向] コンピューター)
- テキストファイルの最終行の削除
C++Builder6です。 テキストファイルの最終行だけを削除する方法を 探しています。 詳しく言えば、ファイルを開けないで、最後にある 改行コード?のみを削除したいです。 よろしくお願いします。
- ベストアンサー
- C・C++・C#
- テキストファイルの重複行を削除できますか?
テキストファイルを読み込んだ際に重複行を削除する 事とかって出来ますでしょうか?? そういう削除関数みたいなのがないんですよね。。。。 C言語って.......
- 締切済み
- C・C++・C#
- VBAでテキストファイルからの特定行抽出
エクセルのVBAで、テキストファイルから、特定の文字を含まない行だけを、別のテキストファイルに取り出す方法を教えてください。 具体的には、元のテキストファイルの中から、「.png」と、「.jpg」を含まない行を取り出して、別のテキストファイルに書き出したい。 元のテキストファイルは、エクセルでそのまま読み込むにはデータが大きすぎてエラーになってしまうので、、VBAで不要なデータを取り除いて、ファイルを小さくしていって、エクセルで扱える大きさにしていこうと思っています。 どなたかおわかりになる方がいらっしゃいましたら、どうぞよろしくお願いいたします。
- 締切済み
- その他([技術者向] コンピューター)
お礼
ありがとうございます。 良く理解できました。