掲示板システム
ホーム
アクセス解析
カテゴリ
ログアウト
文字と数字を分解するには (ID:1553)
名前
ホームページ(ブログ、Twitterなど)のURL (省略可)
本文
>A123A456A789 <- 同じアルファベットが複数ある >Aが複数ある場合は今でも別の配列に入れていますので問題ないのですが 配列が複数用意してあるのですか。 >/X123 <- / * 等の演算子がある 演算子が合った場合はどうするのでしょう。 >B123(COMENT) <- 数値があるとは限らない ()の部分はコメントして無視すると言うことでしょうか。 その他、配列に入れた後、どのように利用するかなど、ふくめて細かい仕様が 分からないので、なんなんですが、 'A'..'Z'があったら、それ以降の数値は読み込む。 ()の間は、読み飛ばす。 それ以外の文字は読み飛ばすという仕様とすると、下記の例になります。 細かい制御が必要なので、Forで回すのはやめて、Whileで回して、 見通しをよくするためにCase文内はサブルーチンにしました。 procedure ArrayFromString; var SS, Item: Char; i, j:integer; procedure GetValue; begin Item := SS; inc(i); SS := S[i]; j := i; if SS = '-' then Inc(i); while SS in ['.','0'..'9'] do begin Inc(i); SS := S[i]; end; Adress[Item] := Copy(S, j + 1, i-j); end; procedure SkipComment; begin Repeat inc(i); SS := S[i]; until (SS = ')') or (SS=#0); end; begin i := 1; j := 1; SS := S[1]; while true do begin case SS of #0: begin Adress[Item] := Copy(S, j, i-j); Break; end; '(': SkipComment; 'A'..'Z': GetValue; else Inc(i); SS := S[i]; end; end; end;
←解決時は質問者本人がここをチェックしてください。
戻る
掲示板システム
Copyright 2021 Takeshi Okamoto All Rights Reserved.