• ベストアンサー

テキストの文字列から特定のものを抜き出すプログラム

don_chaの回答

  • don_cha
  • ベストアンサー率34% (139/407)
回答No.2

以下の条件が必須になります。 1.抜き出す文字列の前の行には、「factor EF-」が必ずある。 2.抜き出す文字は行の先頭からで、最初の区切りに「..」、次の区切りにスペースがある。 この条件から、以下のような処理が考えられます。(エラー処理は考慮していません。) 1.ターゲットファイルをオープンする。 2.一行読込む。但し、EOFだったら項目8へ。 3.「factor EF-」が含まれるか確認し、なければ、項目2.へ戻る。 4.一行読込む。但し、EOFだったら項目8へ。 5.「..」の位置を検出し、先頭からその位置までを前半データ保存用領域へコピーする。 6.項目5.の処理で取得した位置からさらにスペースの位置を検出し、項目5.の検出位置+2(「..」の分)から、検出位置までを後半データ保存領域へコピーする。 7.項目2.へ戻る。 8.ファイルをクローズして終了。

関連するQ&A

  • ファイル中の特定文字列を繰り返す処理

    文字列操作についてご教示いただけますでしょうか。 特定文字列(FFF)を基準にして、次のFFFが現れるまでの行にFFFの行にある文字列を先頭に挿入したいと考えています。 エクセルだと簡単にできるのですが、行数が多いためperlで処理をしようと考えています。 以下のようなテキストを FFF あああ text1 text2 text3 ... FFF えええ text6 text7 text8 ... 以下のようにしたいと考えています。 FFF あああ あああ text1 あああ text2 あああ text3 あああ ... FFF えええ えええ text6 えええ text7 えええ text8 えええ ... どのような処理にするとよいでしょうか? よろしくお願いいたします。

    • ベストアンサー
    • Perl
  • VB2008 テキストボックス内文字検索と置き換え

    テキストボックスの先頭5文字目から2文字に特定の文字があるか探し出して、特定文字があるならその行の後ろに文字をコピーして置き換え。 検索文字があっても無くても空白行の次の行になったら同様の処理を行う。 こういう処理をするにはどのようにすればいいでしょうか? 例) 特定の文字:ef 置き換えする内容:ef→いーえふ <テキストボックスの内容> abcdefgh ijklmnop qrstuvwx yzABefEF GHYJKLMN OPQRefUV <検索して置き換えた後> abcdefgh いーえふ ijklmnop qrstuvwx yzABefEF GHIJKLMN OPQRefUV いーえふ どなたかご教授ください。 よろしくお願いします。

  • テキストファイル 文字列置き換え

    複数のテキストファイルを一括で別の連番のついた文字列に 置きかえることのできるソフトを探しています。 以下の3つの条件を満たすソフトはありますでしょうか? ・複数のテキストファイルを一括で置き換え可能 ・「何行目の文字列を置き換える」という指定が可能 ・置き換えた文字列に連番をつけることが可能 ご存知でしたら、ご教示ください。 よろしくお願いします

  • テキストファイルの内容を文字列として格納する方法を教えてください。

    windows xp、visual C++でプログラムを作成している初心者なんですが、コンマ(,)で区切られたテキストファイルの一部分を文字列として取得する方法が知りたいです。たとえば"sample.text"というファイル名で、 "BAAE0001","0","8","1000100010001000" "BAAE0002","0","8","1000100010001010"  ・  ・  ・ と続いていくテキストなんですが、一行目のBAAE0001をa1に入れ、0をb1に入れ、8をc1に入れ、1000100010001000をd1に入れて、二行目以降もa1、b1…の数字の部分を1ずつ増やして同じように格納していくというふうにしたいです。わかる方、いい方法がある方がいましたらどうか教えてください。

  • 文字列と数字の位置・・・どうにかなりませんか?

    WORD2003で、縦書きの文書を作成しています。 数字を書式→拡張書式→縦中横で直して入れてみましたが よくみると行の1行目と2行目の文字の高さが微妙にずれています。 どうにか直す方法はありませんでしょうか(図(1)) また2行にわたる文の行の真ん中あたりに数字がくると、おさまりが良いのですが 何か方法はないでしょうか(図(1)) 私はテキストボックスを作って数字を行の真ん中に移動したのですが(図(2)) 膨大な文書の場合すべてテキストボックスを作るのは大変で個々のテキストボックスの位置も 揃えるのが大変です。 困っているのでご助言ください WORD2003 WindowsXPです

  • 文字列の比較

    現在Cでプログラムをつくっているのですが いきずまってしまいました。 1.テキストファイルを読み込む 2.書き込みファイルを開く 3.読み込んだデータを一行読み込んで   その行の特定の文字列があれば、   特定の文字列のみ取り出し、   書き込みファイルに書く。    4.次以降の行も同じ処理をする。    5.読み込み、書き込みファイルを閉じる。 と、こんな感じのプログラムなのですが、 3の特定の文字列をどのように取り出せばいいのかわかりません。 取り出したいのが数字ならば、if文でできるのですが 文字列の場合は、どうなんでしょうか。 例えば、「MOJIRETU11」という取り出したいとき 数字と同じようにIF文を使用することは、できるのでしょうか。

  • 文字列の操作 改行とか

    おかがきぎくぐけげこごさざしじすずせぜそぞただ・・・・・・と延々と長い行を一文字一文字のあとに改行をいれて お か が き ぎ く ぐ け げ としたいのですが、なにかしらいいアイディアはありませんか? テキストエディタ ワード エクセル あたりでなんとかなりませんか

  • リストボックスの文字列の検索で困っています!

    C#のプログラミングについて ボタン1を押したとき テキストボックス1にある文字(または数字)がリストボックス1に含まれているかを検索し もし含まれているならばテキストボックス2にその行を表示するプログラムはどうやって書けばいいですか?

  • テキストファイルを読み込み 偶数行の特定の文字を置換するには?

    お世話になります。 vb6なんですけどテキストファイルを読み込んで 偶数行のある文字を置換したいんですけど このサンプルをどういう風に改変して偶数行の文字列をある文字列に 置換するコードを書いてよいのかわかりません。 置換するのはreplace関数を使うと思うのですが。 教えて下さい。お願いします。 Dim n As Long, tmp As String n = FreeFile Open "D:\Test.txt" For Input As #n Line Input #n, tmp Close #n

  • 特定の文字を除くVBA

    特定の文字を除くためのVBAについて質問させてください。 あるマクロを実行したときに、インプットボックスを表示させ、 特定の文字や数字を入力します。そして、H列に入力した文字や数字を含まない行にある処理を行いたいと思います。 以下のようにVBAを入力してみたのですが、インプットボックスに入力した文字をうまく除外してくれません。一体どういった書き方が正しいのでしょうか~?! ご教授いただけるととても助かります! よろしくお願いいたします。 message = InputBox("文字を入力して下さい") If Not Cells(行, H).Value Like "*" & message & "*" Then 処理