Re^4: 文字列末尾の改行検出

投稿者:ten 投稿日:2023/10/28(Sat) 18:41:46 No.2880

ありがとうございます。そうか、2文字と判断するべきだったんですね。〜で終わる、という書き方の存在にも気づいていませんでした(知らないことがたくさんですねえ)

手元でやってみたところ、上手く行きました。ついでに、ちょっと削る文字数でどうなるか、確かめてみました。

1文字だけ削ってテキストエディタで確認したところ、改行コードがCRになってしまっていました(元はCRLF)。知らないままだと危なかった・・・

なるほど、正規表現!プロデルでは、上手く使えていませんが、いずれ勉強して使えるようになりたいと思っています。今回は、教えて頂いた方法で十分上手く回るので、これで行こうと思います。

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

Re^3: 文字列末尾の改行検出

投稿者: 投稿日:2023/10/28(Sat) 07:21:55 No.2879

こんにちは。

 まず前提として、改行を表すコードはCRとLFの2種類あり、OSによってそれらの組み合わせが違います。

Windows:CRLF
Macintosh:CR
Linux:LF

 ただし、エディタなどの指定によって、これらのOSごとの組み合わせとは異なる場合があります。

 さて、前置きが長くなりましたが、プロデルの「[改行]」は、標準的なWindowsの改行コード「CRLF」が利用されています。
 そのため、文字数的には2文字になるようです。

 とりあえず、提示いただいたコードをこんな感じに修正したらうまく動くようです。
 ポイントとしては、「もし」分で「で終わる」を使っているのと、文字列を消す際に末尾から2文字を指定しています。
 このような変換の際、私はいつも正規表現でやってしまうので、正規表現を使わずに書いたのは久々でした。
 ※デバッグのために「textを表示」という1行を入れていますが、不要であれば消してください。

----------
text=「あいうえお[改行]かきくけこ[改行]」

もしtextが「[改行]」で終わるなら
  「改行です」を表示する
  text=textの末尾から2文字消す
  textを表示
もし終わり
----------

 ちなみに、別の改行コードが混ざったファイルを読み込んで利用したり、HTTPでWebから取得したデータを表示する際は、別途改行コードを統一してあげる必要があるため、注意してください。

 以上、長くなりましたが、参考になれば幸いです。

 それでは。

Re^2: 文字列末尾の改行検出

投稿者:ten 投稿日:2023/10/27(Fri) 20:43:09 No.2878

ありがとうございます!

その方法も実は考えたのですが、「ASCIIコード範囲外」の時に大丈夫だろうか、という不安があって・・・

すみません、他の方法があれば、お教え下さい

Re: 文字列末尾の改行検出

投稿者:アーク 投稿日:2023/10/27(Fri) 16:32:10 No.2877

ten さん、こんにちは。アークです。

遣り方は幾つか在りますが ten さんのやり方に近い方法も有ります。

アスキーコードの始めの方は特殊なものが並んでいます。
普通に文字として扱えないものが多いです。
改行もその一つです。

二行目を下記の様にする事で希望する結果が得られると思います。

もし(textの末尾から1文字取り出したもの)のアスキー番号が10であるなら

文字列末尾の改行検出

投稿者:ten 投稿日:2023/10/27(Fri) 15:57:49 No.2876

いつもお世話になっております。ちょっと詰まってしまったので・・・

文字列の最後に改行が入っているかもしれない時、「改行があるなら、それを削除しておく」という作業を行いたいのですが、文字列最後の改行が上手く検出できません。

---
text=「あいうえお[改行]かきくけこ[改行]」

もしtextの末尾から1文字取り出したものが「[改行]」であるなら
  「改行です」を表示する
  text=textの末尾から1文字消す
もし終わり
---

末尾が通常の文字であれば、上記で上手く動きます。例えば、
text=「あいうえお。」
とし、末尾の「。」を検出する・・・これは、問題ありません。

サイト内をうろうろし、

もし[textの末尾から1文字取り出したものが改行である]なら

という表現も使ってみたのですが、やはり駄目でした。どうすればいいでしょう?

Re^2: 手順と関数について

投稿者:omizu 投稿日:2023/10/24(Tue) 09:21:41 No.2875

アークさん有難うございます。

仕様として分かりづらいし、ちょっと残念でした。

Re: 手順と関数について

投稿者:アーク 投稿日:2023/10/23(Mon) 16:47:35 No.2874

omizu さん、こんにちは。アークです。

興味深いですね。

プロデルでは関数の引数は順番ではなく助詞を含めて判断されます。
従って引数の順番を入れ替えても大丈夫ですが、
一つの関数内に同じ助詞は使えません。

例題の場合、[値1]は[値2]で上書きされて[値2]と[値3]だけの計算になるようです。
仕様なので仕方が有りませんがデザイナ上でエラーにして欲しいですね。

手順と関数について

投稿者:omizu 投稿日:2023/10/23(Mon) 14:17:00 No.2873

'例題

10と5と100の試験関数を出力する '=110
試験関数(10,5,100)を出力する '=115

[値1]と、[値2]と、[値3]の、試験関数を求める手順
  値+値2+値3を返す
終わり

'なぜなのか。マニュアルにあるならご教示願います。

Re: 空の多次元配列の作り方

投稿者:ゆうと 投稿日:2023/10/06(Fri) 01:21:55 No.2871

よくわかりませんが
---------
【A】={{1,2},{3,4}}
A(2)(2)を報告
---------
と書いて問題なく動くように思います。

空の多次元配列の作り方

投稿者:初心者です 投稿日:2023/09/30(Sat) 02:36:34 No.2870

プロデルを使って競技プログラミングをしているのですが、空の、整数型の二次配列の作り方が分かりません。
【変数名】={{},{}}
というふうにしてみても、
変数名(i)(j)のように指定すると、配列では無いというふうに表示されてしまいます。
どうすれば、空の整数型の二次配列を作成することができるのでしょうか

▲ページの先頭へ

- WebForum -