none
テキストの一部文字列削除 RRS feed

  • 質問

  • VB6.0で現在テキスト形式にあるデータの一部を削除するプログラムを組んでいるのですがうまくいきません。
    誰かわかるひとお願いします。
    ちなみにテキストの中身は

    01おかし                              0130かるびぃ     

    これが一件のデータです。
    このようなデータのうち

    01おかし                              0130かるびぃ      02けしごむ                            0100だがしや      03おにく                              9999まつざか     

    02けしごむ                            0100だがしや      の部分だけを消したいんです。
    消した後03のデータが01のデータのすぐ後ろにつくようにするにはどうしたらいいんでしょうか?

    ※一部省略しましたが一件のデータは決められたバイト数で構成されています。改行もされていません。

    2007年4月1日 6:34

すべての返信

  •  Anonymous さんからの引用
    ※一部省略しましたが一件のデータは決められたバイト数で構成されています。改行もされていません。

    であれば、考え方としては、削除開始位置から、そのバイト数分を Remove してしまうだけで良いですよね。

    2007年4月1日 11:11
  • 単純に答えると

     

    xxx.Replace("01おかし                              0130かるびぃ      ", "")

     

    なわけだけど、たぶん違うよね?

     

    きちんと1レコードずつを1つのクラスなりに分解して、格納していらないレコードを破棄して、再合成みたいな流れがいいかもしれない。

     

    2007年4月1日 11:12
  • VB6か、

    Replace(元文字列, 変換前, 変換後)

    ってかんじ。

     

    マニュアル調べてください。

    2007年4月1日 11:13
  • データというぐらいですから、たぶん固定長で1データずつ読み込んでいるんですよね。そこでごにょごにょやって、いらないデータは削って、最後に保存ボタンを押すと一つのファイルに必要なデータだけを書き出すイメージなんでしょうか?

    それとも単純に表題にかかれているように文字列削除でよいんでしょうか? また、「02けしごむ                            0100だがしや      」というようなデータはユニークで複数存在しないんでしょうか?

    いずれにしても、もう少し仕様の情報がないと、みなさんからの回答がぶれるように思います。表題にはテキストと書かれていますが、実際にはデータの1レコードを削除することなので、そこがちょっと気になります。

    2007年4月1日 15:12
    モデレータ
  • LEFT$やMID$、RIGHT$を使ってみては?

    バイト数はUNICODEなので注意してください

    2007年4月2日 4:51