ローカr定数エラーについて


ガオ〜  2015-09-01 01:15:38  No: 47573

こんにちは。
Delphi XE5
Windows 8.1 
Oracle 11g
の環境で開発しています。
少々長いプログラムなのですが、コンパイルすると
***********************************************
[エラー]FormSample.pas:ローカル定数が多すぎます。
手続きを短くしてください。
***********************************************
というエラーが発生しコンパイルできませんでした。
プログラムを短くすると確かにコンパイルできましたが
正常なプログラム内容になりません。
何か他の回避方法はないですか。


igy  2015-09-01 04:53:36  No: 47574

そのようなエラーになったことがないので、よくわかりませんが、

E2283 ローカル定数が多すぎます。手続きを短くしてください(Delphi)
http://docwiki.embarcadero.com/RADStudio/XE8/ja/E2283_%E3%83%AD%E3%83%BC%E3%82%AB%E3%83%AB%E5%AE%9A%E6%95%B0%E3%81%8C%E5%A4%9A%E3%81%99%E3%81%8E%E3%81%BE%E3%81%99%E3%80%82%E6%89%8B%E7%B6%9A%E3%81%8D%E3%82%92%E7%9F%AD%E3%81%8F%E3%81%97%E3%81%A6%E3%81%8F%E3%81%A0%E3%81%95%E3%81%84%EF%BC%88Delphi%EF%BC%89

には、

>修正するには、手続きを短くするか、コードで多くのリテラルを使用する代わりに定数識別子を宣言してください。 

とあるようです。


ガオ〜  2015-09-01 15:12:03  No: 47575

igyさん、アドバイスありがとうございます。

〉修正するには、手続きを短くするか、コードで多くのリテラルを使用する代わりに定数識別子を宣言してください。
ネットで調べてみたのですが、意味が理解出来ませんでした。
具体的にはどのようにすればいいのですか?


tor  2015-09-01 22:46:15  No: 47576

リテラルというのは、ァァヲサで囲んだ文字列を指します。(厳密には」を付けた制御文字も含まれますけど)
ヘルプには
ヲサヲサこのヲサカエヲサヒツヲサの制限が適用されるのは、関数本体の式に含まれる文字列、セット、浮動小数点の値
とあるので、

ァァヲサのような文字列リテラル、
ロアャヲサイャヲサウンヲサのようにロンで囲んだ集合、
アョイウエオヲサのような実数値

これらが一つの関数の中で数万個、もしくは文字数にして数万文字分以上出てきましたよということになります。

で、本当に一つの関数の中にそんなにあるんですか?
よほど定数びっしりで、かつ何千行も何万行も続くコードでないとそんなことにならないはずですが。
そこまではないよというのなら、何かがおかしいですね。

実際にそこまで使っているとしたら、ヘルプで述べられている対策は二通りです。
ィゥヲサ関数を短くする
ィゥヲサ定数識別子を使う
後者は、例えばヲサァァヲサとかヲサァァヲサといったリテラルを関数本体で直接使わず
ヲサヲサ
ヲサヲサヲサヲサチツテヲサスヲサァァサ
ヲサヲサヲサヲサリルレヲサスヲサァァサ
ヲサヲサヲサヲサョョョ
のように定義して、このチツテやリルレを使うということです。(特に同じ定数式が繰り返し出てくるのなら、こうした方がメンテナンス性も良くなります)
しかし、何万もの定数式を使う関数というのがそもそも尋常ではないので、適切なサイズの関数に分割する方が妥当なんじゃないでしょうか。
スススススススススススススススススススススススススススススススススススススススス
ニコ ガオ〜ヲサ
トコ イーアオッーケッアキィ木ゥ アカコオウコイア シ  スュアセシ初心者セ シッニセシノヘヌ ス「コッッョョョッッアョ「 ス「ー「セ 書込者ノト:ロ 「。ィ  ン

さん、さん、アドバイス頂きながら遅くなりまして申し訳ありません。
ちょっと体調を崩しておりまして・・・

関数を短くするとプログラムが成立しないので
定数識別子を使う方向で考えているのですが、
どうしたらいいかわかりません。
今のコードはテ文で期間に応じて作成するテーブルが
違うようになっています。
コードを抜粋します。

ェェェェェェェェェェェェェェェェェェェェェェェェェェェェェェェェェェェェェェェェェェェェェ
ヲサヲサヲサトヤヤニトィモヤトィ゜ゥゥヲサ
ヲサヲサヲサヲサクオイクアケケカクョョククカウーククカエコヲサッッイーーオッーカッイア〜イーーカッーカッイー
ヲサヲサヲサヲサ
ヲサヲサヲサヲサヲサヲサヲサチトマテエヲサ
ヲサヲサヲサヲサヲサヲサ
ヲサヲサヲサヲサヲサヲサヲサヲサテヤヲサコスヲサァノホモナメヤヲサノホヤマヲサヤナヘミ゜ハモヒヌナホヒネチホヲサァ
ヲサヲサヲサヲサヲサヲサヲサヲサヲサヲサヲサヲサヲサヲサヲサヲサヲサヲサヲサヲサヲサォヲサァィハユテルユ゜ホマャヲサハユテルユ゜ホマ゜トャヲサヒツホャヲサモナヤユツノ゜テマトナャヲサレチノメルマ゜テマトナャヲサフマモャヲサァ
ヲサヲサヲサヲサヲサヲサヲサヲサヲサヲサヲサヲサヲサヲサヲサヲサヲサヲサヲサヲサヲサォヲサァヘナホモナヒノャヲサホナモヤ゜ヒマモユャヲサミメマモ゜ヤノヘナャヲサヤチホハルユャヲサヒヌ゜ヤチホャヲサァ
ヲサヲサヲサヲサヲサヲサヲサヲサヲサヲサヲサヲサヲサヲサヲサヲサヲサヲサヲサヲサヲサォヲサァテマモヤャヲサァ
ヲサヲサヲサヲサヲサヲサヲサヲサヲサヲサヲサヲサヲサヲサヲサヲサヲサヲサヲサヲサヲサォヲサァチテヤノヘナャヲサァ
ヲサヲサヲサヲサヲサヲサヲサヲサヲサヲサヲサヲサヲサヲサヲサヲサヲサヲサヲサヲサヲサォヲサァミチメヤモ゜ホマャヲサヒノホツルヘノホャヲサヒノヒチノテマモヤャヲサユモナメホチヘナゥヲサァ
ヲサヲサヲサヲサヲサヲサヲサヲサヲサヲサヲサヲサヲサヲサヲサヲサヲサヲサヲサヲサヲサォヲサァモナフナテヤヲサョハユテルユ゜ホマャヲサョハユテルユ゜ホマ゜トャヲサコアオャヲサョモナヤユツノ゜テマトナャヲサョレチノメルマ゜テマトナャヲサョフマモャヲサァ
ヲサヲサヲサヲサヲサヲサヲサヲサヲサヲサヲサヲサヲサヲサヲサヲサヲサヲサヲサヲサヲサォヲサァョヘナホモナヒノャヲサョホナモヤ゜ヒマモユャヲサョミメマモ゜ヤノヘナャヲサョヤチホハルユャヲサョレチノヤチホャヲサァ
ッッ計算式が異常な為コメントとするヲサヲサヲサヲサヲサヲサヲサヲサヲサヲサヲサヲサヲサヲサヲサヲサヲサヲサヲサヲサヲサヲサヲサヲサヲサヲサヲサヲサヲサヲサヲサヲサヲサヲサヲサヲサヲサヲサヲサヲサヲサヲサヲサヲサヲサヲサヲサヲサヲサヲサヲサヲサヲサヲサヲサヲサヲサヲサヲサヲサヲサヲサヲサヲサヲサヲサヲサヲサヲサヲサヲサヲサヲサヲサヲサヲサヲサヲサヲサヲサヲサォヲサァョヘナホモナヒノェョホナモヤ゜ヒマモユェィアーーヲサュヲサョフマモゥェョヤチホハルユェョレチノヤチホッアーーーャヲサョホナモヤ゜ヒマモユェョミメマモ゜ヤノヘナッカーヲサァ
ヲサヲサヲサヲサヲサヲサヲサヲサヲサヲサヲサヲサヲサヲサヲサヲサヲサヲサヲサヲサヲサォヲサァィョヘナホモナヒノヲサェヲサョネノヤユルマ゜ヒマモユヲサェヲサィィィアーーヲサュヲサョフマモゥヲサッヲサアーーゥヲサォヲサアゥヲサェヲサョヤチホハルユヲサッヲサアーーーーーーゥヲサェヲサョレチノヤチホャヲサァ
ヲサヲサヲサヲサヲサヲサヲサヲサヲサヲサヲサヲサヲサヲサヲサヲサヲサヲサヲサヲサヲサォヲサァョホナモヤ゜ヒマモユヲサェヲサョミメマモ゜ヤノヘナャヲサァ
ヲサヲサヲサヲサヲサヲサヲサヲサヲサヲサヲサヲサヲサヲサヲサヲサヲサヲサヲサヲサヲサォヲサァョミチメヤモ゜ホマャヲサョヒノホツルヘノホャヲサョネノヤユルマ゜ヒマモユヲサェヲサョミメマモ゜ヤノヘナヲサェヲサョヒノホツルヘノホャヲサコアキヲサァ
ヲサヲサヲサヲサヲサヲサヲサヲサヲサヲサヲサヲサヲサヲサヲサヲサヲサヲサヲサヲサヲサォヲサァニメマヘヲサミチメヤモヲサャヲサレチノメルマイーーオヲサャヲサレチノメルマ゜モナヤユツノイーーオヲサヲサァ
ヲサヲサヲサヲサヲサヲサヲサヲサヲサヲサヲサヲサヲサヲサヲサヲサヲサヲサヲサヲサヲサォヲサァラネナメナヲサョレチノメルマ゜テマトナヲサスヲサョレチノメルマティォゥヲサチホトヲサョレチノメルマ゜テマトナヲサスヲサョレチノメルマティォゥヲサァ
ヲサヲサヲサヲサヲサヲサヲサヲサヲサヲサヲサヲサヲサヲサヲサヲサヲサヲサヲサヲサヲサォヲサァチホトヲサョモナヤユツノ゜テマトナヲサスヲサョモナヤユツノティォゥヲサチホトヲサョレチノメルマ゜ヒツホヲサスヲサコアエヲサァ
ヲサヲサヲサヲサヲサヲサヲサヲサヲサヲサヲサヲサヲサヲサヲサヲサヲサヲサヲサヲサヲサォヲサァチホトヲサョハユテルユ゜ホマヲサスヲサコアアヲサチホトヲサョハユテルユ゜ホマ゜トヲサツナヤラナナホヲサコアイヲサチホトヲサコアウヲサチホトヲサョヒマヤナノ゜ヒツホアヲサスヲサコアカヲサァサ

ヲサヲサヲサヲサヲサヲサヲサヲサテヤヲサコスヲサヤサ
ヲサヲサヲサヲサヲサヲサヲサヲサミョミツホィァアアァゥョヨヲサコスヲサナアョヤサ
ヲサヲサヲサヲサヲサヲサヲサヲサミョミツホィァアイァゥョヨヲサコスヲサアサ
ヲサヲサヲサヲサヲサヲサヲサヲサミョミツホィァアウァゥョヨヲサコスヲサケケケサ
ヲサヲサヲサヲサヲサヲサヲサヲサミョミツホィァアエァゥョヨヲサコスヲサァオーーーアァサ
ヲサヲサヲサヲサヲサヲサヲサヲサミョミツホィァアオァゥョヨヲサコスヲサァオーーーアァサ
ヲサヲサヲサヲサヲサヲサヲサヲサミョミツホィァアカァゥョヨヲサコスヲサァエーオーアァサヲサヲサヲサッッ社内加工
ヲサヲサヲサヲサヲサヲサヲサヲサミョミツホィァアキァゥョヨヲサコスヲサヌホユサ
ヲサヲサヲサヲサヲサヲサヲサヲサナサ

ヲサヲサヲサヲサヲサヲサヲサヲサテヤヲサコスヲサァテマヘヘノヤァサ
ヲサヲサヲサヲサヲサヲサヲサヲサテヤヲサコスヲサヤサ
ヲサヲサヲサヲサヲサヲサヲサヲサナサ
ヲサヲサヲサヲサヲサヲササ
ヲサヲサヲサヲササ

ヲサヲサヲサヲサククカウキエエーーョョケアケクカウイケカコヲサッッイーーカッーカッイア〜イーーキッーカッイー
ヲサヲサヲサヲサ
ヲサヲサヲサヲサヲサヲサヲサチトマテエヲサ
ヲサヲサヲサヲサヲサヲサ
ヲサヲサヲサヲサヲサヲサヲサヲサテヤヲサコスヲサァノホモナメヤヲサノホヤマヲサヤナヘミ゜ハモヒヌナホヒネチホヲサァ
ヲサヲサヲサヲサヲサヲサヲサヲサヲサヲサヲサヲサヲサヲサヲサヲサヲサヲサヲサヲサヲサォヲサァィハユテルユ゜ホマャヲサハユテルユ゜ホマ゜トャヲサヒツホャヲサモナヤユツノ゜テマトナャヲサレチノメルマ゜テマトナャヲサフマモャヲサァ
ヲサヲサヲサヲサヲサヲサヲサヲサヲサヲサヲサヲサヲサヲサヲサヲサヲサヲサヲサヲサヲサォヲサァヘナホモナヒノャヲサホナモヤ゜ヒマモユャヲサミメマモ゜ヤノヘナャヲサヤチホハルユャヲサヒヌ゜ヤチホャヲサァ
ヲサヲサヲサヲサヲサヲサヲサヲサヲサヲサヲサヲサヲサヲサヲサヲサヲサヲサヲサヲサヲサォヲサァテマモヤャヲサァ
ヲサヲサヲサヲサヲサヲサヲサヲサヲサヲサヲサヲサヲサヲサヲサヲサヲサヲサヲサヲサヲサォヲサァチテヤノヘナャヲサァ
ヲサヲサヲサヲサヲサヲサヲサヲサヲサヲサヲサヲサヲサヲサヲサヲサヲサヲサヲサヲサヲサォヲサァミチメヤモ゜ホマャヲサヒノホツルヘノホャヲサヒノヒチノテマモヤャヲサユモナメホチヘナゥヲサァ
ヲサヲサヲサヲサヲサヲサヲサヲサヲサヲサヲサヲサヲサヲサヲサヲサヲサヲサヲサヲサヲサォヲサァモナフナテヤヲサョハユテルユ゜ホマャヲサョハユテルユ゜ホマ゜トャヲサコアオャヲサョモナヤユツノ゜テマトナャヲサョレチノメルマ゜テマトナャヲサョフマモャヲサァ
ヲサヲサヲサヲサヲサヲサヲサヲサヲサヲサヲサヲサヲサヲサヲサヲサヲサヲサヲサヲサヲサォヲサァョヘナホモナヒノャヲサョホナモヤ゜ヒマモユャヲサョミメマモ゜ヤノヘナャヲサョヤチホハルユャヲサョレチノヤチホャヲサァ
ッッ計算式が異常な為コメントとするヲサヲサヲサヲサヲサヲサヲサヲサヲサヲサヲサヲサヲサヲサヲサヲサヲサヲサヲサヲサヲサヲサヲサヲサヲサヲサヲサヲサヲサヲサヲサヲサヲサヲサヲサヲサヲサヲサヲサヲサヲサヲサヲサヲサヲサヲサヲサヲサヲサヲサヲサヲサヲサヲサヲサヲサヲサヲサヲサヲサヲサヲサヲサヲサヲサヲサヲサヲサヲサヲサヲサヲサヲサヲサヲサヲサヲサヲサヲサヲサヲサォヲサァョヘナホモナヒノェョホナモヤ゜ヒマモユェィアーーヲサュヲサョフマモゥェョヤチホハルユェョレチノヤチホッアーーーャヲサョホナモヤ゜ヒマモユェョミメマモ゜ヤノヘナッカーヲサァ
ヲサヲサヲサヲサヲサヲサヲサヲサヲサヲサヲサヲサヲサヲサヲサヲサヲサヲサヲサヲサヲサォヲサァィョヘナホモナヒノヲサェヲサョネノヤユルマ゜ヒマモユヲサェヲサィィィアーーヲサュヲサョフマモゥヲサッヲサアーーゥヲサォヲサアゥヲサェヲサョヤチホハルユヲサッヲサアーーーーーーゥヲサェヲサョレチノヤチホャヲサァ
ヲサヲサヲサヲサヲサヲサヲサヲサヲサヲサヲサヲサヲサヲサヲサヲサヲサヲサヲサヲサヲサォヲサァョホナモヤ゜ヒマモユヲサェヲサョミメマモ゜ヤノヘナャヲサァ
ヲサヲサヲサヲサヲサヲサヲサヲサヲサヲサヲサヲサヲサヲサヲサヲサヲサヲサヲサヲサヲサォヲサァョミチメヤモ゜ホマャヲサョヒノホツルヘノホャヲサョネノヤユルマ゜ヒマモユヲサェヲサョミメマモ゜ヤノヘナヲサェヲサョヒノホツルヘノホャヲサコアキヲサァ
ヲサヲサヲサヲサヲサヲサヲサヲサヲサヲサヲサヲサヲサヲサヲサヲサヲサヲサヲサヲサヲサォヲサァニメマヘヲサミチメヤモヲサャヲサレチノメルマイーーカヲサャヲサレチノメルマ゜モナヤユツノイーーカヲサヲサァ
ヲサヲサヲサヲサヲサヲサヲサヲサヲサヲサヲサヲサヲサヲサヲサヲサヲサヲサヲサヲサヲサォヲサァラネナメナヲサョレチノメルマ゜テマトナヲサスヲサョレチノメルマティォゥヲサチホトヲサョレチノメルマ゜テマトナヲサスヲサョレチノメルマティォゥヲサァ
ヲサヲサヲサヲサヲサヲサヲサヲサヲサヲサヲサヲサヲサヲサヲサヲサヲサヲサヲサヲサヲサォヲサァチホトヲサョモナヤユツノ゜テマトナヲサスヲサョモナヤユツノティォゥヲサチホトヲサョレチノメルマ゜ヒツホヲサスヲサコアエヲサァ
ヲサヲサヲサヲサヲサヲサヲサヲサヲサヲサヲサヲサヲサヲサヲサヲサヲサヲサヲサヲサヲサォヲサァチホトヲサョハユテルユ゜ホマヲサスヲサコアアヲサチホトヲサョハユテルユ゜ホマ゜トヲサツナヤラナナホヲサコアイヲサチホトヲサコアウヲサチホトヲサョヒマヤナノ゜ヒツホアヲサスヲサコアカヲサァヲササ

ヲサヲサヲサヲサヲサヲサヲサヲサテヤヲサコスヲサヤサ
ヲサヲサヲサヲサヲサヲサヲサヲサミョミツホィァアアァゥョヨヲサコスヲサナアョヤサ
ヲサヲサヲサヲサヲサヲサヲサヲサミョミツホィァアイァゥョヨヲサコスヲサアサ
ヲサヲサヲサヲサヲサヲサヲサヲサミョミツホィァアウァゥョヨヲサコスヲサケケケサ
ヲサヲサヲサヲサヲサヲサヲサヲサミョミツホィァアエァゥョヨヲサコスヲサァオーーーアァサ
ヲサヲサヲサヲサヲサヲサヲサヲサミョミツホィァアオァゥョヨヲサコスヲサァオーーーアァサ
ヲサヲサヲサヲサヲサヲサヲサヲサミョミツホィァアカァゥョヨヲサコスヲサァエーオーアァサヲサヲサヲサッッ社内加工
ヲサヲサヲサヲサヲサヲサヲサヲサミョミツホィァアキァゥョヨヲサコスヲサヌホユサ
ヲサヲサヲサヲサヲサヲサヲサヲサナサ

ヲサヲサヲサヲサヲサヲサヲサヲサテヤヲサコスヲサァテマヘヘノヤァサ
ヲサヲサヲサヲサヲサヲサヲサヲサテヤヲサコスヲサヤサ
ヲサヲサヲサヲサヲサヲサヲサヲサナサ
ヲサヲサヲサヲサヲサヲササ
ヲサヲサヲサヲササ
ヲサヲサヲサヲサケアケケイククウイョョケウイエエカイークコヲサッッイーーキッーカッイア〜イーーキッアイッイー
ヲサヲサヲサヲサ
      ・
      ・
      ・
ェェェェェェェェェェェェェェェェェェェェェェェェェェェェェェェェェェェェェェェェェェェェェ
例えばテの一部を削除してらコンパイルできるのですが
それでは一部の機関が欠落します。
それは回避したいのですが、どのようにすればよいか
思い当たりません、もう少しヒントを頂けませんでしょうか。
スススススススススススススススススススススススススススススススススススススススス
ニコ 
トコ イーアオッーケッアキィ木ゥ アキコイウコオア  書込者ノト:ロ 」 ァ」ハノ

 ン

そのテ文それぞれでやっていることを別々の関数に分ければいいんじゃないですかね……

テヲサ式ヲサ
  範囲アコヲサ関数アィゥサ
  範囲イコヲサ関数イィゥサ
  ョョョ

そもそも、提示されたコードにあるイつのテってそれぞれがすごく長いですが、内容はほぼ同一ですよね?ヲサ比較してみたら
ヲサヲサォヲサァニメマヘヲサミチメヤモヲサャヲサレチノメルマイーーオヲサャヲサレチノメルマ゜モナヤユツノイーーオヲサヲサァ
ヲサヲサォヲサァニメマヘヲサミチメヤモヲサャヲサレチノメルマイーーカヲサャヲサレチノメルマ゜モナヤユツノイーーカヲサヲサァ
この「イーーオ」と「イーーカ」が違うだけでした。

すべてのテがこの調子なのだとしたら、ほんの一部が異なるだけで後は同一というコードを延々繰り返すのは無駄そのものです。
例えば
  ヲササ
  ョョョ
  テヲサ式ヲサ
    範囲アコヲサヲサコスヲサァイーーオァサ
    範囲イコヲサヲサコスヲサァイーーカァサ
    ョョョ
  サ
のようにテ文の中では変数を代入するだけにして、この変数を使って
  テヤヲサコスヲサァノホモナメヤヲサノホヤマヲサヤナヘミ゜ハモヒヌナホヒネチホヲサァ
    ォヲサョョョヲサィ長いので中略ゥ
    ォヲサァニメマヘヲサミチメヤモヲサャヲサレチノメルマァヲサォヲサヲサォヲサァヲサャヲサレチノメルマ゜モナヤユツノァヲサォヲサヲサォヲサョョョヲサィ以下略ゥ
といった具合にテヤを組み立てるようにする、というのが普通のプログラミングではないでしょうか。
あるいは、この「一部違うだけで後はまったく同じ」コードを一つの関数にまとめて、違う部分だけを関数の引数として渡すようにするのでもいいですすけど。
(さらに言えば、このイーーオとかイーーカというのも、テ使わなくても日付から直接取り出せる気がしますが)
スススススススススススススススススススススススススススススススススススススススス
ニコ 
トコ イーアオッーケッアキィ木ゥ アキコエキコアイ  書込者ノト:ロ 」 ァ」ハノ

 ン

……という説明で伝わるか不安なので、もう少し具体的にいきましょう。
まずメソッドを一つ定義します。名前は仮に「ア」としますが、実際の処理内容に応じた適切な名前に変えてください。

ヲサヤニアョアィコヲサモゥサ

ヲサヲサテヤヲサコスヲサァノホモナメヤヲサノホヤマヲサヤナヘミ゜ハモヒヌナホヒネチホヲサァ
ヲサヲサヲサヲサォヲサァィハユテルユ゜ホマャヲサハユテルユ゜ホマ゜トャヲサヒツホャヲサモナヤユツノ゜テマトナャヲサレチノメルマ゜テマトナャヲサフマモャヲサァ
ョョョ
ッッ長いので途中は省略。元のコードからコピーしてください
ョョョ
ヲサヲサヲサヲサォヲサァニメマヘヲサミチメヤモヲサャヲサレチノメルマァヲサォヲサヲサォヲサァヲサャヲサレチノメルマ゜モナヤユツノァヲサォヲサヲサォヲサァイーーオヲサヲサァヲサッッヲサこのア行だけ、変数を使った式に変えます
ヲサヲサヲサヲサォヲサァラネナメナヲサョレチノメルマ゜テマトナヲサスヲサョレチノメルマティォゥヲサチホトヲサョレチノメルマ゜テマトナヲサスヲサョレチノメルマティォゥヲサァ
ヲサヲサヲサヲサォヲサァチホトヲサョモナヤユツノ゜テマトナヲサスヲサョモナヤユツノティォゥヲサチホトヲサョレチノメルマ゜ヒツホヲサスヲサコアエヲサァ
ヲサヲサヲサヲサォヲサァチホトヲサョハユテルユ゜ホマヲサスヲサコアアヲサチホトヲサョハユテルユ゜ホマ゜トヲサツナヤラナナホヲサコアイヲサチホトヲサコアウヲサチホトヲサョヒマヤナノ゜ヒツホアヲサスヲサコアカヲサァサ

ヲサヲサテヤヲサコスヲサヤサ
ヲサヲサミョミツホィァアアァゥョヨヲサコスヲサナアョヤサ
ョョョ
ッッこのくだりも長いので省略。元のコードからコピーしてください
ョョョ
ヲサヲサナサ

ヲサヲサテヤヲサコスヲサァテマヘヘノヤァサ
ヲサヲサテヤヲサコスヲサヤサ
ヲサヲサナサ

で、元のコードはこのメソッドを呼ぶだけの処理に変えます。

ヲサヲサヲサトヤヤニトィモヤトィ゜ゥゥヲサ
ヲサヲサヲサヲサクオイクアケケカクョョククカウーククカエコヲサッッイーーオッーカッイア〜イーーカッーカッイー
ヲサヲサヲサヲサヲサヲサアィァイーーオァゥサ

ヲサヲサヲサヲサククカウキエエーーョョケアケクカウイケカコヲサッッイーーカッーカッイア〜イーーキッーカッイー
ヲサヲサヲサヲサヲサヲサアィァイーーカァゥサ

とても短くなりましたね。他のテも、年の数字が違うだけなら同じように置き換えましょう。
年以外にも内容の変わるパラメータがある(例えばヲサァオーーーアァヲサとかヲサァエーオーアァヲサというのがテによって変わる)というなら、それも関数の引数として渡すようにすればいいです。

これとは処理内容のまったく異なるテがあるのなら、
同じようにイィ仮ゥ、ウィ仮ゥ……と別の関数に分けて
その関数を呼び出すように変えていってください。
スススススススススススススススススススススススススススススススススススススススス
ニコ 
トコ イーアオッーケッアキィ木ゥ アクコオイコエオ  書込者ノト:ロ 」 ァ」ハノ

 ン

おっと訂正
ィ誤ゥヲサォヲサァニメマヘヲサミチメヤモヲサャヲサレチノメルマァヲサォヲサヲサォヲサァヲサャヲサレチノメルマ゜モナヤユツノァヲサォヲサヲサォヲサァイーーオヲサヲサァ
ィ正ゥヲサォヲサァニメマヘヲサミチメヤモヲサャヲサレチノメルマァヲサォヲサヲサォヲサァヲサャヲサレチノメルマ゜モナヤユツノァヲサォヲサヲサォヲサァヲサヲサァ

念のため補足しますが、アの中身は元のコードからヲサヲサチトマテエヲサヲサ〜ヲサイ番目のナヲサまでの範囲をコピーしてきて、このア行を書き換えただけのものです。
スススススススススススススススススススススススススススススススススススススススス
ニコ 
トコ イーアオッーケッアクィ金ゥ ーケコエクコウク シ  スュアセシ中級者セ シッニセシノヘヌ ス「コッッョョョッッイョ「 ス「ー「セ 書込者ノト:ロ 」。ァ」。 ン

気になる所は、その長い文字列が
プログラム中で毎回連結処理が行われていることかなぁ
それとテヤにいきなり入れずに
毎回使う文字列は定数にしておけばコンパイルの負担も少なくなるかと

ヲサの方に移動しちゃいましょう

モムフモヤメヲサスヲサァノホモナメヤヲサノホヤマヲサヤナヘミ゜ハモヒヌナホヒネチホヲサァ
ヲサヲサヲサヲサヲサヲサヲサォヲサァィハユテルユ゜ホマャヲサハユテルユ゜ホマ゜トャヲサヒツホャヲサモナヤユツノ゜テマトナャヲサレチノメルマ゜テマトナャヲサフマモャヲサァ



ヲサヲサヲサヲサヲサヲサヲサォヲサァチホトヲサョハユテルユ゜ホマヲサスヲサコアアヲサチホトヲサョハユテルユ゜ホマ゜トヲサツナヤラナナホヲサコアイヲサチホトヲサコアウヲサチホトヲサョヒマヤナノ゜ヒツホアヲサスヲサコアカヲサァサ

・・・

ヲサヲサヲサテヤヲサコスヲサモムフモヤメサ

あと気になるのは

ヲサヲサヲサトヤヤニトィモヤトィ゜ゥゥヲサ
ヲサヲサヲサヲサクオイクアケケカクョョククカウーククカエコヲサッッイーーオッーカッイア〜イーーカッーカッイー

日付の範囲を高速に分岐したいのでしょうけど
別途比較するための関数を作ってその中でヤトヤ型として比較しないと
間違いの元です。
スススススススススススススススススススススススススススススススススススススススス
ニコ ガオ〜ヲサ
トコ イーアオッーケッアクィ金ゥ アウコイクコオケ シ  スュアセシ初心者セ シッニセシノヘヌ ス「コッッョョョッッアョ「 ス「ー「セ 書込者ノト:ロ 「。ィ」  ン
モコ 

さん、さん  ご回答ありがとうございます。
3つの方法の中からメソッドを定義する方法を採用して
無事に解決できました。

初めのうちはコードを短くて問題なかったので、自分でも
なんか幼稚なコードだな〜と思いつつ動作していたので
そのままにしていました。
そのうち対象期間が増えていき今回いきなり
ェェェェェェェェェェェェェェェェェェェェェェェェェェェェェェェェェェェェェェェェェェェェェェェ
ロエラーンニモョコローカル定数が多すぎます。
手続きを短くしてください。
ェェェェェェェェェェェェェェェェェェェェェェェェェェェェェェェェェェェェェェェェェェェェェェェ
のエラーがでまして・・・
早めに対応しておけばと今回はつくづく思い知らされました。


※返信する前に利用規約をご確認ください。

※Google reCAPTCHA認証からCloudflare Turnstile認証へ変更しました。






  このエントリーをはてなブックマークに追加