• ベストアンサー

テキストの読込について

あいうえお かきくけこ さしすせそ ↑のような中身のテキストファイルを読み込んで、 あいうえおかきくけこさしすせそ ↑のように、改行をなくして新規テキストに出力する プログラムを作成中なのですが、上手くいかず 困っています。 改行を無視した取り込みは出来るのでしょうか? もしくは、LineInput等で読み込んだ後、 改行を取り除くような処理をするのでしょうか? 下記は、現在まで作ったプログラムなのですが、 これだと、改行も同時に取り込んでしまっています。 Private Sub Command1_Click() Dim sData As String Dim FileName As String CommonDialog1.Filter = "テキスト|*.txt|全てのファイル|*.*" CommonDialog1.ShowOpen FileName = CommonDialog1.FileName Open FileName For Input As #1 Do Until EOF(1) Line Input #1, sData Loop Close #1 環境は、WindowsXP、VB6.0エンタープライズです。 以上、宜しくお願い致します<(_ _)>

noname#17655
noname#17655

質問者が選んだベストアンサー

  • ベストアンサー
  • fortranxp
  • ベストアンサー率26% (181/684)
回答No.5

これでうまくいきませんか? Private Sub Command1_Click() Dim sData As String Dim FileName As String CommonDialog1.Filter = "テキスト|*.txt|全てのファイル|*.*" CommonDialog1.ShowOpen FileName = CommonDialog1.FileName Open FileName For Input As #1 Do Until EOF(1) Line Input #1, sData Text1.Text = sData + Text1.Text Loop Close #1 Open "ABC.txt" For Output As #1 Print #1, Text1.Text Close #1 End Sub

noname#17655
質問者

お礼

invalidさんのお礼にも書きましたが、 LineInputで稼動し、原因はテキスト帳のようでした。 頂いた情報は、別の機会に参考にさせて頂きたいと思います。 情報提供ありがとうございました!

その他の回答 (6)

noname#22222
noname#22222
回答No.7

次は、FileReadAll関数と Replace関数の使用例です。 ? FileReadAll("d:\sales2005plus\Test.txt") ああああ いいいい うううううう ええええ おおおお ? replace(FileReadAll("d:\sales2005plus\Test.txt"), chr$(13) & chr$(10), "") ああああいいいいううううううええええおおおお Option Explicit Public Function FileReadAll(ByVal FileName As String) As String On Error GoTo Err_FileReadAll    Dim fso As FileSystemObject    Dim fil As File    Dim txs As TextStream       Set fso = New FileSystemObject    Set fil = fso.GetFile(FileName)    Set txs = fil.OpenAsTextStream(ForReading, TristateUseDefault)    FileReadAll = txs.ReadAll Exit_FileReadAll:    Exit Function Err_FileReadAll:    MsgBox Err.Description & "(FileReadAll)", vbExclamation, " 関数エラーメッセージ"    Resume Exit_FileReadAll End Function ※Microsoft scripting runtime の参照設定が必要です。

noname#17655
質問者

お礼

invalidさんのお礼にも書きましたが、 LineInputで稼動し、原因はテキスト帳のようでした。 頂いた情報は、別の機会に参考にさせて頂きたいと思います。 情報提供ありがとうございました!

  • fortranxp
  • ベストアンサー率26% (181/684)
回答No.6

Text1.TextはmultiLineです。

noname#187541
noname#187541
回答No.4

こんにちは。 VB.NETでの確認なのでVB6とは違うかもしれませんが lineInputは改行コードがあるところまで、つまり偉業分のデータを読み込みます。 改行コードを区切り文字としてデータを読み込んでいるので読み込んだデータには改行コードは含まれません。 ですので読み込んだデータを&で繋いでいけばいいと思います。データが出来れば後は書き込めばいいだけでしょう。」 こんな感じです。 Dim mystr As String Do Until EOF(1) Line Input #1, sData mystr = mystr & sData Loop

noname#17655
質問者

お礼

invalidさんのお礼にも書きましたが、 LineInputで稼動し、原因はテキスト帳のようでした。 頂いた情報は、別の機会に参考にさせて頂きたいと思います。 情報提供ありがとうございました!

  • invalid
  • ベストアンサー率61% (67/109)
回答No.3

Line Input で読み込んだデータには改行マークは 付かないはずでは… 新規ファイルに出力するときに改行してませんか? 出力部分のコーディングが見当たりませんが、 セミコロンで終わってますか?

noname#17655
質問者

お礼

情報提供ありがとうございます。 こちらに相談した後、LineInputで上手く稼動しました。 どうも、テキスト帳に問題があったようです。

  • creek
  • ベストアンサー率50% (31/61)
回答No.2

たぶん、↓ここを参考にすれば良いと思いますよ。 http://f57.aaa.livedoor.jp/~jeanne/bbs/faq.cgi?mode=al2&namber=1018&KLOG=6

参考URL:
http://f57.aaa.livedoor.jp/~jeanne/bbs/faq.cgi?mode=al2&namber=1018&KLOG=6
noname#17655
質問者

お礼

残念ながら上手く行きませんでした(>_<) 情報提供ありがとうございました。

  • toshi_2000
  • ベストアンサー率30% (306/1002)
回答No.1

>LineInput等で読み込んだ後、改行を取り除くような処理をするのでしょうか? そういう処理でいいと思います。

noname#17655
質問者

お礼

toshi_2000さん、ご回答ありがとうございます。 その処理についてご教授願えないでしょうか? 宜しくお願いします。

関連するQ&A

  • ある文字列を検索するボタンのつくりかた

    あるテキストファイル(*.txt)の内容をテキストボックスに表示するボタンを作りました。さらに、このテキストファイルの内容の中から、決まった文字列のみを表示できるようにしたい(例.abcdefgと書かれたテキストに対してbcdのみ抜き出す)のですが、どうすれば良いのでしょうか。初心者なので、簡単にできる方法があれば教えてください。 <現在のコード> Dim myFile As String Private Sub Command1_Click() CommonDialog1.Filter = "テキスト(*.txt)|*.txt|すべて(*.*)|*.*" CommonDialog1.FilterIndex = 1 CommonDialog1.Flags = cdlONFileMustExist '既存ファイルのみ読み込み CommonDialog1.ShowOpen If CommonDialog1.FileName = "" Then Exit Sub myFile = CommonDialog1.FileName FileRead Form1.Caption = "Form1 " & myFile End Sub Private Sub Form_Load() Form1.Height = 3510 End Sub Private Sub FileRead() Dim buf As String On Error GoTo ErrTrap1 Open myFile For Input As #1 RichTextBox1.Text = "" While Not EOF(1) Line Input #1, buf RichTextBox1.Text = RichTextBox1.Text & buf & Chr(13) & Chr(10) Wend Close #1 Exit Sub ErrTrap1: MsgBox Err.Description Err.Clear End Sub

  • CommonDialog でエラー

    OSとExcelを再インストールしたところ、下記のところでエラーが出ました。 なぜでしょうか。解決策はあるでしょうか。 以前は、使用できておりました。 Excelのマクロは、ほとんど理解しておりません。 他人が作成したマクロになります。 OS:WindowsXp Excel:2003 よろしくお願いします。 Private Sub CommandButton3_Click() Dim strArg() As String Dim i As Integer CommonDialog1.filename = ""   ←ここでエラーがでてとまります。 CommonDialog1.ShowOpen strArg = Split(CommonDialog1.filename, "\")  ごにょごにょ演算など。 End Sub

  • VBでエディタ

    こんにちは。Kakugariです。  今、VBでエディタを作っていますがファイル操作でつまずいてしまいました。Commondialogからファイル名を取得して、そのファイルをMaintxtに表示するプログラムですがMaintxtに表示されるとき、Tabを使用してスペースを空けた部分が、無視されて文字が前に詰めて表示されます。それ以外は正常です。下にコードを載せましたので、お分かりになられる方は、間違いを指摘していただけたらありがたいです。ちなみにVB6です。Commondialogのプロパティは、デザイン時に設定されています。 Private Sub mnuOpen_Click()   On Error GoTo ErrCode   With CommonDialog1     .DialogTitle = "開く"     .ShowOpen   End With   Dim txt As String, Work As String   Open CommonDialog1.FileName For Input As #1   Do While Not EOF(1)     Input #1, Work     txt = txt & Work & vbCrLf   Loop   Close #1   Maintxt = txt   Exit Sub ErrCode:   Close #1   MsgBox "ファイルは開けませんでした。", vbCritical End Sub

  • ファイルを読み込んだらVBがフリーズする

    ↓のコードだと、ファイルを読み込んだ時点でVBがフリーズします(平気なファイルも一部ある)。原因と解決法を教えてください。 Private Sub Command1_Click() CommonDialog1.Filter = "テキスト(*.txt)|*.txt|すべて(*.*)|*.*" CommonDialog1.FilterIndex = 1 CommonDialog1.Flags = cdlONFileMustExist CommonDialog1.CancelError = True On Error Resume Next CommonDialog1.ShowOpen If (Err = 0) Then FileRead CommonDialog1.FileName End If On Error GoTo 0 End Sub Private Sub FileRead(FL As String) Dim FileNo As Integer Dim strDAT As String Dim strELM As String Dim pot1 As Integer, pot2 As Integer Dim pDB1 As Integer, pDB2 As Integer FileNo = FreeFile() Open FL For Input As #FileNo While Not EOF(FileNo) Line Input #FileNo, strDAT strDAT = strDAT & ":" pot1 = InStr(strDAT, ":") While pot1 > 0 strELM = Left(strDAT, pot1) pot2 = InStr(strELM, "OPEN") While pot2 > 0 pDB1 = InStr(strELM, Chr(&H22)) If pDB1 > 0 Then '前の『"』の位置 pDB2 = InStr(pDB1 + 1, strELM, Chr(&H22)) If pDB2 > 0 Then RichTextBox1.Text = RichTextBox1.Text & _ Mid(strELM, pDB1 + 1, pDB2 - pDB1 - 1) & vbCrLf End If End If pot2 = InStr(pDB2 + 1, strELM, "OPEN") Wend strDAT = Mid(strDAT, pot1 + 1) pot1 = InStr(strDAT, ":") Wend Wend Close #FileNo End Sub

  • エクセルVBA:テキストデータ(txt)の読込(改行が変なところでされる)

    勉強しながら、エクセルVBAを組んでみたのですが うまくいきません。 テキストデータを以下のようなプログラムで読んだのですが (100行のデータを縦に並ぶように100個のセルの書き出す) 読み込みデータに「↓」で改行されているところでは 「↓」の間は同一行と見なされてしまうのですが どのようにしたら一行で一つのデータと見てくれるのでしょうか? 分かる方がいましたら教えて下さい。 よろしくお願いします。 Sub pon() '*** 変数の宣言 *** Dim filenum As String Dim i As Integer Dim num As Integer, ms As String, cnt As Integer Dim BookName As String, PathName As String Dim ca As String cnt = 1 i = 1 ca = Cells(1, 56) PathName = "C:\" textpath = Dir(PathName & "pon" & ca & ".txt") BookName = Dir(PathName & "pon" & ca & ".txt") Open PathName & BookName For Input As #1 'ファイルを開きます Do While Not EOF(1) Line Input #1, ms cnt = cnt + 1 Cells(1, 57) = BookName 'データの書き出し Cells(cnt, 56) = ms 'データの書き出し Loop Close #1 End Sub

  • VBでファイル読み込み

    VBであるところにあるCSVファイルのデータを読み込みエクセルへ変換出力したいのですが教えてください。コモンダイアログボックス(?)と言うものを使って作成したいのです。よろしくお願いします。 がんばってやってみたのですがわかりません。教えてください。 Private Sub Command1_Click() Dim gnum(25), tensuu(32, 99) Dim sougouten(99), heikin(99), gouhi$(99) 'ファイルを開く On Error GoTo ErrHandler 'コモンダイアログボックス CommonDialog1.CancelError = True CommonDialog1.Filter = "すべてのファイル (*.*)|*.*|" _ & "テキスト ファイル (*.txt)|*.txt|バッチ ファイル (*.bat)|*.bat" CommonDialog1.FilterIndex = 2 CommonDialog1.ShowOpen With CommonDialog1 .FileName = "" .ShowOpen End With Exit Sub ErrHandler: ' ユーザーが [キャンセル] ボタンをクリックしました。 End Sub

  • INPUT関数でのCSV読込がおかしい件

    VisualBasic6.0で開発しております。 string型にて宣言した配列にシーケンシャルモードで 開いたCSVファイルを、 INPUT関数にて読み込んでいるのですが、" あああ" といったデータが、 配列に入ると"あああ "となってしまいます。つまり空白文字列が頭からお尻に移動してしまいます。 どなたか原因がわかる方、また回避方法がわかるかた は教えて頂ければ幸いです。なお、LINEINPUTではそのような現象はおこりません。しかしLINEINPUTは速度の観点から使いたくありません。 <参考ソース>   Type hairetu    a As String    b As String     ・     ・   End Type   Global 配列() As hairetu   dim intfile as integer   dim lngcnt as integer   intFile = FreeFile   Open "パス" For Input As #intFile   lngCnt = 0   Do While Not EOF(intFile)    redim preserve 配列(lngCnt)    Input #intFile, 配列(lngCnt).a,配列(lngCnt).b,・・・    lngCnt=lngCnt+1   LOOP

  • コモンダイアログエラー

    エクセルのマクロについて質問です。 今エクセルでCommonDialog1を実行しようとしています。 やりたいことは”ファイルを選択するウィンドウを表示”させて”ファイルを開く”です。 マクロを作成しているエクセルは2007で実際に動作させるときに使用するのは2002です。 下記マクロ参照ください。 Private Sub CommandButton1_click() Dim strfilename As String commondialog1.Filename = "" commondialog1.Filter = "CSV Files(*.csv)|*.csv" commondialog1.showopen strfilename = commondialog1.Filename End Sub 実行しようとすると実行エラー424 オブジェクトが必要です とエラーメッセージがでます。(2007で作成、デバック時) common dialog controlの挿入等試してみましたがうまくいきません。 解決策がありましたらご教示願います。 ちなみに、既存のマクロの都合でcommondialogのコマンドを使用して作りたいです。 他にも方法はあるかと思いますが、宜しくお願い致します。

  • EXCEL2007のVBAを使って、テキストファイルを読み込んで別のテ

    EXCEL2007のVBAを使って、テキストファイルを読み込んで別のテキストファイルを作って書き込むというコードを書きましたが、新しく出来たテキストファイルの末尾に、もともとのファイルには無かったスペースが追加されてしまいます。 原因と対策を教えて頂きたいです。 ------------------------------------------------------- Dim FileName1 As String Dim FileName2 As String Dim FileNumber1 As Integer Dim FileNumber2 As Integer Dim Data As String FileName1 = Application.GetOpenFilename("Text Files (*.txt), *.txt") FileName2 = Application.GetSaveAsFilename(, "Text Files (*.txt), *.txt") Data = Space(FileLen(FileName1)) FileNumber1 = FreeFile Open FileName1 For Binary As #FileNumber1 Get #FileNumber1, , Data Close #FileNumber1 'この間に"Data"内容を処理するコードを入れる予定 FileNumber2 = FreeFile Open FileName2 For Binary As #FileNumber2 Put #FileNumber2, , Data Close #FileNumber2 ------------------------------------------------------- このコードで1284バイトのテキストを読み込ませると末尾にスペースが追加されて1918バイトになってしまいました。 "Data"の内容を表示させてもスペースはなく、Len関数で大きさを調べても1284バイトです。

  • ファイル名がテキストボックスにうまく表示できない

    お世話になります。 filelistboxで選択したファイル名を選択した順に テキストボックスに表示させたいのですが、ファイル名の 後に改行コードを入れても改行して表示してくれません。 何が原因なんでしょうか?よろしく御教授願います。 例 aaa.txtを選択、テキストボックスに表示させ、 その後bbb.txtを選択するとテキストボックスの表示が ”aaa.txt‥bbb.txt”となる --------- aaa.txt(改行) bbb.txt --------- と表示したい。 (コード) Dim fname As String Private Sub File1_Click() fname = Dir1.Path & "\" & File1.FileName End Sub Private Sub Command3_Click() Call macappend End Sub Private Sub macappend() 'text1に選択マクロを追加    Dim macbuff1 As String    Dim macbuff2 As String    macbuff2 = Text1.Text    macbuff1 = fname + Chr(13) + Chr(11)    macbuff2 = macbuff2 + macbuff1    Text1.Text = macbuff2 End Sub