初めて書き込みします。
どこから手をつければよいのか分からず、ご助言頂けないでしょうか。


1件のログが2行に分かれたテキストファイル(.txt)があります。

dir -mmmmmmmmm mmmmmm
FreeWardxxxxxxxa UserID date TYPEA
. comentxxxxxxxxx name
FreeWardxxxxxxxa UserID date TYPEA
. comentxxxxxxxxx name
FreeWardxxxxxxxa UserID date TYPEA2
. comentxxxxxxxxx name

dir -mmmmmmmmm mmmoom
FreeWardxxxxxxxa UserID date TYPEB
. comentxxxxxxxxx name
FreeWardxxxxxxxa UserID date TYPEA
. comentxxxxxxxxx name


******やりたいこと*******************************
 1行の最後に(TYPEA、TYPEB、TYPEA2)が含まれる場合は
 その行の最後の改行を削除して2行を1行に連結。

 それ以外の行はそのままで、新しい名前.txtで保存。
************************************************

新しい名前.txtをエクセルに読み込んで活用する予定ですが、
テキストファイルを一つ一つ変更していくと量が膨大&ログファイルの差換え予定アリで、
何とか上記だけでも自動化できないかと考えています。
エクセルVBAの経験は少しあるのですが、
テキストファイルで完結させるとなると、何から手をつければ良いのか、、。

きっかけでも構わないので、分かる方、お願いいたします。

このQ&Aに関連する最新のQ&A

A 回答 (2件)

正規表現で処理できるエディタを使って、置換後に別名保存すれば


済むことだと思うけど。

正規表現の例
\nは改行を意味していますが、違うものを使うこともあります。

検索する文字列: (TYPEA|B|A2)\n 
置換後の文字列: \1

正規表現で処理できるなら、エディタでなくてもかまいません。
クリップボード拡張ソフトやコマンド処理などでもよいかも。
お勧めソフト
http://www.forest.impress.co.jp/article/2008/05/ …
    • good
    • 0
この回答へのお礼

ありがとうございました!

正規表現対応エディタ・・・とっても社会勉強になりました。
今後も色々使えそうで、助かります。


会社PCの為、お勧め頂いたソフトの前提条件NGでインストールできませんでしたが。
(「Microsoft Visual C++ 2008 再頒布可能パッケージ (x86)」)

「正規表現 テキスト」 で検索して、下記エディタで目的達成できました。
http://www5f.biglobe.ne.jp/~t-susumu/library/tpa …

本当にありがとうございました!!

お礼日時:2011/04/19 09:31

Sub macro1()


 Dim buf As String, buf2 As String
 Open "c:\test\test.txt" For Input As #1
 Open "c:\test\newtext.txt" For Output As #2

 Do Until EOF(1)
  Line Input #1, buf
  If buf Like "*TYPE[A,B]" Or buf Like "*TYPEA2" Then
   Line Input #1, buf2
   buf = buf & buf2
  End If
  Print #2, buf
 Loop

 Close #2
 Close #1
End Sub
    • good
    • 0
この回答へのお礼

コードの勉強をする機会を与えてくださり、ありがとうございました*

今回はエディタで対応することにしましたが、
今の仕事を収めて、すぐやってみます!!

質問してよかったです*ありがとうございました!!

お礼日時:2011/04/19 09:34

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!


このカテゴリの人気Q&Aランキング