• ベストアンサー

chompの使い方

入力フォームで入力されたテキストデータ(改行あり)を処理して、テキスト文書にするCGIプログラムを作成しています。 テキスト文書としてで整形するのに、入力フォームで入った改行コードが邪魔なので、「chomp」を使って、行末の改行文字を切り落とそうとしたのですが、まったく機能しません。そのまま改行が文書内で出てきています。 これはなにか原因があるのでしょうか? 「chop」を使って、強制的に文末の一文字を切り落とすとなんとか整形できますが、ちょっと乱暴だなと思ってます。 うまいやり方などあるものでしょうか? ご教示いただけるとうれしいです。よろしくお願いいたします。

  • CGI
  • 回答数1
  • ありがとう数1

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

  • ベストアンサー
  • ns944a
  • ベストアンサー率30% (16/52)
回答No.1

置換を使っています。 $tmp =~ s/\r+\n+//g;

deepsfx
質問者

お礼

早速のご回答、ありがとうございます。

deepsfx
質問者

補足

使ってみたのですが、結果は同じでした。 いったい何が原因なのでしょうか。。。

関連するQ&A

  • 改行コード変換

    先に「chompの使い方」で質問したものです。 文字コードを調べたところ、改行が「^M」で表示されていました。 テキスト文書ファイルもCGIプログラムも文字コードはEUCにしてありますし、改行コードもLFにしているんですが、フォームで入力される改行コードはCR+LFになっているようです。 これはどうやって制御すれば(全ての改行をLFにする)よいのでしょうか? ご教示いただけるとうれしいです。よろしくお願いいたします。

    • ベストアンサー
    • CGI
  • EXCELでフォームのテキストBOXに入力した文章を別セルに書き出すマ

    EXCELでフォームのテキストBOXに入力した文章を別セルに書き出すマクロ Excel VBAでフォームのテキストBOXに入力した文章を別セルに書き出すマクロを作成しています。 普通に書き出すことと、改行コードで改行させることはできます。 しかし、改行コード&決まった文字数(任意)で改行し、改行後の先頭に句読点が来たときには句読点で改行させるようにしたいです。 (句読点が行末に来る場合、任意の文字数に+1する) どのようにしたら良いでしょうか? 今行っている方法だと、1行で文字数での改行が2回行われるとおかしくなってしまいます。 ご教授ください

  • 文末のスペース(改行)

    ●1回目 ログファイルからランダムに1行分を表示する。 その下にテキストボックスを表示し、入力を促す。 ●2回目 さきほど入力されたものと表示されたものがあっているかどうかを確認し、分岐 というような流れのcgiを作成しました。 ログファイルから持ってきたものが、改行が入っているため、半角スペースが入っています。 なので、 chomp $FORM{'KEYWORD1'}; として、改行を削除しました。 ローカルの時点ではうまくいっていたのですが、アップロードすると、改行が消えていません。 改行を削除するのはchompでは駄目なのでしょうか?

    • ベストアンサー
    • Perl
  • 改行機能の優れたエディタをご存じないでしょうか。

    いま、メールマガジンを作成、発行しようとしているのですが、 利用しているEditorで、 指定文字で改行という機能を利用した際に、 句読点やカギ括弧の判別ができず、 それらが文末に来ていたとしても強制的に改行してしまいます。 また、整形機能をもったフリーソフトを色々と探してみたのですが、 良いモノが見つから無い状況です。 句読点や、カギ括弧が文末に来ていた際には改行しない様に 判別して改行してくれる使いやすいEditorなど お勧めなどありましたら、お教えいただけませんでしょうか?

  • Wordでの改行についての疑問。Wordでページ設定をして文字入力をす

    Wordでの改行についての疑問。Wordでページ設定をして文字入力をするとき、行末になると自動的に改行され次の行に文字が入力されます。しかし、スペースを入れてゆくと行末になっても自動的に改行されずに、編集記号を表示させていると四角のスペース記号が余白部分までずっと続きます。これは何故でしょうか?ご回答をお願い致します。

  • Wordの文字入力について

    例えば文書を2段で続けて入力した場合、1段目の行末に改行マークをつけないと、2段目の行頭にスペースを入れることが出来ないのはなぜ?

  • 文末の改行コードを削除したい

    メールフォームにて、テキストエリアの文末に無意識で改行(Enter)を連打する人がいます。 それを、送信するまでにjavascript等で削除してしまいたいと考えています。 textarea の onBlur で関数を動かし、文中の改行は残しつつ文末の改行(複数の場合あり)を削除したいです。 どなたかご教授ください。

  • ワードの改行について

    ワードで文字を入力中、文末で自然に改行されますよね。 通常は、スペースを入力しても文末で自然に改行されると思うのですが、私のPCでは、スペースだと改行されず、余白にスペースの編集記号が続いていき、それを通り越して用紙の外まで延々とカーソルが移動してしまいます。 どうしてそうなってしまったのか、心当たりがありません。 考えられることを教えてください。

  • 【VB6】複数行のテキストボックスの改行

    お世話になります。 VB6で、複数行入力出来るテキストボックスを作成しました。 そのテキストボックスの横幅は、最大30文字(60byte)まで入力出来ます。 ですが、あくまでフォーム上で伸縮させていた為、中途半端に折り返しされます。 【例】 iiiiiiiiiijjjjjjjjjjiiiiiiiiiijjjjjjjjjjiiiiiiiiiijjjあ jjjjjjj (↑計62バイトなので、本来であれば2行目に改行されてしまったjjjjjjjの左5文字を1行目に表示させたい) その行は特定のバイトを超えたらその場で強制的に改行!というソースを追加したいです。 その為には、常にテキストボックスの入力バイト数を監視するようにしなければならないと思いますが、なるべく動作や容量が重くならないような方法はありますでしょうか?

  • メールフォームで自動的に改行する方法

    メールフォームを作成したのですが、ユーザが長い文を入力して送信したとき、メールの文章が改行されなくて読みにくいという苦情受けました。 指定した文字数になれば自動で改行されるなど、 なにか見やすくする方法はないでしょうか? 使用しているのはKENT WebさんのメールフォームCGI です。

専門家に質問してみよう