![](http://oshiete.xgoo.jp/images/v2/pc/qa/question_title.png?e8efa67)
お世話になります。
テキストファイルを読み込みファイルの各行の両端に"をつけたいのです。たとえば、
今日は友人と焼肉を食べに行った。
雨の中、外を歩くのはつらかったが、
久々に会える友達のため東京まででかけた。
という文があったとしてプログラムを通しての出力結果が
"今日は友人と焼肉を食べに行った。"
"雨の中、外を歩くのはつらかったが、"
"久々に会える友達のため東京まででかけた。"
というように出力されるようにしたいのです。
下記のコードを自分で考えてみましたが、テキストファイルに保存がうまくできませんでした。どうすればよろしいでしょうか?
教えてください。お願いします。
Dim Reader As New IO.StreamReader("C:\aa.txt")
Do Until Reader.EndOfStream
ListBox1.Items.Add(Chr(&H22) & Reader.ReadLine & Chr(&H22))
Loop
Reader.Close()
Dim dtmStart As DateTime = DateAdd(DateInterval.Second, 10, Now)
Do While Now < dtmStart
Application.DoEvents()
Loop
Dim Writer As New IO.StreamWriter("C:\bb.txt")
Writer.WriteLine(ListBox1.Text)
Writer.Close()
End Sub
No.1ベストアンサー
- 回答日時:
Public Class Q3456061
Shared Sub Main()
'System.Windows.Formsを読み込むのが面倒くさかったという
'個人的な都合でSystem.Collections.Generic.Listに変更
Dim Lines As System.Collections.Generic.List(Of String)
Dim ReadFile As String
Dim SaveFile As String
Lines = New System.Collections.Generic.List(Of String)
ReadFile = Q3456061.GetAppPath() & "\Q3456061-1.txt"
SaveFile = Q3456061.GetAppPath() & "\Q3456061-2.txt"
'普段はUTF-8(BOMあり)で作るが,念のためCodePage 932で作った。
'そのため,コンストラクタに文字符号化方式を指定している。
Dim Reader As System.IO.StreamReader
Reader = New System.IO.StreamReader(ReadFile,System.Text.Encoding.GetEncoding(932))
'個人的な都合で,UntilをWhileにさせてもらった。
'http://www.windows-world.jp/ganko/-/46889.html
Do While Reader.EndOfStream = false
Lines.Add(Chr(&H22) & Reader.ReadLine & Chr(&H22))
Loop
Reader.Close()
'意図不明。
'Dim dtmStart As DateTime = DateAdd(DateInterval.Second, 10, Now)
'Do While Now < dtmStart
'Application.DoEvents()
'Loop
Dim Writer As System.IO.StreamWriter
Writer = New System.IO.StreamWriter(SaveFile,false,System.Text.Encoding.GetEncoding(932))
Do While Lines.Count > 0
'元のソースコードにあったListBox1.Textってのが間違いで
'ItemをWriteLineするような気がする。
'それを考慮してDo~Loop内に入れる。ただし、当然Closeは外に出す
Writer.WriteLine(Lines(0))
Lines.RemoveAt(0)
Loop
Writer.Close()
'単純にコレをやりたかったならいいが,ファイルフォーマットの仕様作成等に携わるなら,
'「文字列として改行や制御文字を含めたい」時や「文字列中に"を含めたい」等の要望も予測しておく必要がある。
End Sub
'当方のプログラムの都合上入れてます
'http://dobon.net/vb/dotnet/vb6/apppath.html
Shared Function GetAppPath() As String
Return System.IO.Path.GetDirectoryName( _
System.Reflection.Assembly.GetExecutingAssembly().Location)
End Function
End Class
'余談 Q3453592も答えようとしたが,APIリファレンスの読み方が解らず、挫折。
'一応setStringで文字列扱いとしてセルに挿入されるみたいだ。
'で,それ以外の数字に関してだが,
'OOo/Excelではセルを右クリックして「セルのフォーマット」/「表示形式」を「文字列」/「テキスト」に
'変更するとCSVで保存した時に引用符で括られる。
'ただしExcel[当方2000で検証]では読み込むとき,
'標準として読み込むので結局"001"等は1になってしまう。OOoはCSVを開いたときに
'各列のフォーマットをテキストに変更することで001という文字列として読み込むことが出来る。
'OOo Basicでの方法がわからなかったので回答してなかったが
'・・・って余談のほうが長いような
ご親切にありがとうございます。
私のしりたかったことがまさに解決しました。
これで停滞していた仕事がはかどります。
ありがとうございました。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Excel(エクセル) Excelにて、フォルダ内のTextファイルをマクロで統合すると文字化けしてしまう時の解消コード 4 2023/01/01 07:32
- Excel(エクセル) マクロでテキストファイルを読み込んだ際の最終セルにデータと改行が含まれる問題の改善方法 2 2022/03/25 16:50
- Excel(エクセル) フォルダ内のワードファイルをPDFに一括変換するVBA 3 2023/06/09 16:51
- Visual Basic(VBA) ExcelVBAに関する質問 3 2023/02/17 10:47
- Visual Basic(VBA) 【前回の続き続きです、ご教示ください】VBAの記述方法がわかりません。 2 2022/08/24 20:49
- Visual Basic(VBA) エクセルのマクロについて教えてください。 2 2023/07/15 15:48
- Visual Basic(VBA) VBAのユーザーフォームのテキストボックスに入力制限をしたい 6 2022/11/15 08:28
- Visual Basic(VBA) エクセルVBAのコードで質問です。 下のコードはJ16の文字列をB3を起点とする範囲から探して、見つ 5 2023/04/07 11:07
- その他(Microsoft Office) マクロVBAについて 1 2022/09/06 18:12
- Visual Basic(VBA) 複数csvを横に追加していくマクロについて 2 2023/04/25 09:19
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
【VBA】テキストファイルを指定...
-
Excelにて、フォルダ内のTextフ...
-
VBAでテキストファイルを最後ま...
-
複数のテキストファイル内の複...
-
EXCELのVBAでEOFを誤認識
-
VBSを使用し、指定フォルダ内の...
-
uwscでExcelに自動記入
-
VBScript(vbs)での行の取得につ...
-
同一フォルダにある複数のテキ...
-
unixのシェルスクリプトで特定...
-
アスキー、バイナリーの違い、...
-
ファイルを読み込み各行の両端...
-
ファイルのアクセス回数について
-
エクセルのプロパティーでセキ...
-
エクセルで複数のコメントのサ...
-
バッチファイル 二つ上のディ...
-
エクセルvbaでdocuworksprinter...
-
Windows10でコマンドプロンプト...
-
指定したフォルダ内の最新ファ...
-
カンマ区切りのCSVファイルから...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
【VBA】テキストファイルを指定...
-
EXCELのVBAでEOFを誤認識
-
同一フォルダにある複数のテキ...
-
アスキー、バイナリーの違い、...
-
複数のテキストファイル内の複...
-
スペース区切りのテキストファ...
-
Excelにて、フォルダ内のTextフ...
-
テキストファイルの最終行を消...
-
uwscでExcelに自動記入
-
VBAでテキストファイルを最後ま...
-
VBScript(vbs)での行の取得につ...
-
複数ファイルから情報抽出
-
vbaでテキストファイル(*.txt...
-
テキストファイルの改行コード...
-
VBで複数のテキストを結合する...
-
unixのシェルスクリプトで特定...
-
VBでのテキストファイルへ参照...
-
VBAで特定のパス(フォルダ)内...
-
句点で改行
-
VBでファイルの判定
おすすめ情報