改行マークの扱いについて


ピッコロ  2001-07-09 21:08:01  No: 74639  IP: [192.*.*.*]

今,アウトルックエクスプレス上で打ち込んだテキスト(文字列)を暗号化するプログラムを組んでいます。手順としては,文字列の端からアスキーコードにして,それに数式を挟んで暗号化するものです。
  ところが,アウトルックエクスプレスは一行の文字列が長すぎると,強制的に目に見えない改行マークが入るようなのです。
  その改行マークが入ってくると,読み込む段階,あるいはコード変換する段階でエラーが出ます。こういった場合,どのような処理を挟めばいいのでしょうか?どなたかご教示くだされば幸いです。

編集 削除
Say  2001-07-11 06:58:50  No: 74640  IP: [192.*.*.*]

一度どんなコードが追加になっているのか、バイナリエディタで調べたほうがいいでしょう。バイナリエディタは
http://www.vector.co.jp/vpack/filearea/win95/util/bin/edit/index.html
にひとやま転がってます。
通常の改行コードは16進で0D,0A(CR,LF)のはずです。
問題のコードがわかれば、バイナリでファイルオープンして、
1バイトずつリードし、(実際はバッファに一括リードして
1バイトずつ拾う)問題のコードをよみとばしながら
バイナリセーブすればOKです。
ただし、2バイト系文字コードの場合、2バイト目は
チェックからはずす必要があります。

編集 削除
ピッコロ  2001-07-12 19:52:06  No: 74641  IP: [192.*.*.*]

さっそくの回答ありがとうございます。ご教示の通り,バイナリーエディタにてコードを調べてみました。教えて頂いたとおり0D0Aが入っていました。
  プログラムの中では,クリップボードに文字列(改行コードを含む)をコピーして,それを暗号化手順を組んでいます。こうした場合,どのようにして0D0Aをパスさせればいいのでしょう?いろいろとすみません。教えてください。

編集 削除
Say  2001-07-13 00:22:35  No: 74642  IP: [192.*.*.*]

文字コードによってかわるのですが、ShiftJISの場合だと、
1.読み込み用と履き出し用にバイト配列バッファを用意
1.読み込みバッファに文字列を取得。取得する文字列が
  残ってなかったら履き出し用バッファのデータをフラッシュ
  しておわり
2.ポインタを0にセット
  読み込みバッファから1バイトリード
  リードするデータが残ってなかったら1.へ
3.リードしたデータがCRかLFだったら、ポインタを1つ
  すすめて2.へ
4.リードしたデータがShiftJIS1バイト目だったら
  今のデータと次のデータを履き出しバッファにストア。
  ポインタを2つすすめて2.へ
5.リードしたデータが3.4.以外のときは今のデータを
  履き出しバッファにストア。ポインタを1つすすめて2.へ  
  履き出しバッファがいっぱいになったら適宜フラッシュ。
  
おおざっぱに言うとこんなかんじです。
なんか、C向きのネタですね。
「ポインタ」とかきましたが、この場合、配列の添え字用の
整数です。

編集 削除