みんなに優しく、解りやすくをモットーに開設しています。 以下のルールを守りみんなで助け合いましょう。
1.ファイルメーカーで解らない事があればここで質問して下さい。 何方でも、ご質問・ご回答お願いします。 (優しく回答しましょう)
You are not logged in.
Pages: 1
Mac OS Catalina FileMaker19です。
逆引き辞典のように、文字列の後ろ側からのソートはできるでしょうか?
よろしくお願いします。
Offline
逆引きの計算フィールドを作り、それでソートする、しかないでしょうね。
Offline
逆引き用計算フィールド「逆引倒置」を別途追加し、それで標準ソートすれば可能です。
この「逆引倒置」の簡略な式例は、(計算結果:テキスト、索引:保存)
(※式のポイントは、Code(文字列)の結果文字コード配置が逆順になる関数特性を利用)
Code(文字列フィールド & Char(1))
Last edited by Hiro (2020-07-08 13:08:23)
Offline
Codeを使うのはナイスアイデアですね。
文字数が約5倍になるのが難点か...100文字しか索引になりません。
FM19なので平凡にWhile関数で反転もできますね。
なるほど。
Char (テキスト)も逆になるんですよね~。
全角だけなら以下で文字順が反転します。
Char ( GetAsCSS ( テキスト ))
Offline
ちょっと作ってみました。検証少なめ...。
Let([
_val=Substitute (テキスト
;[Char(48) ; "00048"]
;[Char(49) ; "00049"]
;[Char(50) ; "00050"]
;[Char(51) ; "00051"]
;[Char(52) ; "00052"]
;[Char(53) ; "00053"]
;[Char(54) ; "00054"]
;[Char(55) ; "00055"]
;[Char(56) ; "00056"]
;[Char(57) ; "00057"]
)
;_val=RomanHankaku ( _val )
;_val=Substitute ( _val
;[Char(1) ; "00001"]
;[Char(2) ; "00002"]
;[Char(3) ; "00003"]
;[Char(4) ; "00004"]
;[Char(5) ; "00005"]
;[Char(6) ; "00006"]
;[Char(7) ; "00007"]
;[Char(8) ; "00008"]
;[Char(9) ; "00009"]
;[Char(10) ; "00010"]
;[Char(11) ; "00011"]
;[Char(12) ; "00012"]
;[Char(13) ; "00013"]
;[Char(14) ; "00014"]
;[Char(15) ; "00015"]
;[Char(16) ; "00016"]
;[Char(17) ; "00017"]
;[Char(18) ; "00018"]
;[Char(19) ; "00019"]
;[Char(20) ; "00020"]
;[Char(21) ; "00021"]
;[Char(22) ; "00022"]
;[Char(23) ; "00023"]
;[Char(24) ; "00024"]
;[Char(25) ; "00025"]
;[Char(26) ; "00026"]
;[Char(27) ; "00027"]
;[Char(28) ; "00028"]
;[Char(29) ; "00029"]
;[Char(30) ; "00030"]
;[Char(31) ; "00031"]
;[Char(32) ; "00032"]
;[Char(33) ; "00033"]
;[Char(34) ; "00034"]
;[Char(35) ; "00035"]
;[Char(36) ; "00036"]
;[Char(37) ; "00037"]
;[Char(38) ; "00038"]
;[Char(39) ; "00039"]
;[Char(40) ; "00040"]
;[Char(41) ; "00041"]
;[Char(42) ; "00042"]
;[Char(43) ; "00043"]
;[Char(44) ; "00044"]
;[Char(45) ; "00045"]
;[Char(46) ; "00046"]
;[Char(47) ; "00047"]
;[Char(58) ; "00058"]
;[Char(59) ; "00059"]
;[Char(60) ; "00060"]
;[Char(61) ; "00061"]
;[Char(62) ; "00062"]
;[Char(63) ; "00063"]
;[Char(64) ; "00064"]
;[Char(65) ; "00065"]
;[Char(66) ; "00066"]
;[Char(67) ; "00067"]
;[Char(68) ; "00068"]
;[Char(69) ; "00069"]
;[Char(70) ; "00070"]
;[Char(71) ; "00071"]
;[Char(72) ; "00072"]
;[Char(73) ; "00073"]
;[Char(74) ; "00074"]
;[Char(75) ; "00075"]
;[Char(76) ; "00076"]
;[Char(77) ; "00077"]
;[Char(78) ; "00078"]
;[Char(79) ; "00079"]
;[Char(80) ; "00080"]
;[Char(81) ; "00081"]
;[Char(82) ; "00082"]
;[Char(83) ; "00083"]
;[Char(84) ; "00084"]
;[Char(85) ; "00085"]
;[Char(86) ; "00086"]
;[Char(87) ; "00087"]
;[Char(88) ; "00088"]
;[Char(89) ; "00089"]
;[Char(90) ; "00090"]
;[Char(91) ; "00091"]
;[Char(92) ; "00092"]
;[Char(93) ; "00093"]
;[Char(94) ; "00094"]
;[Char(95) ; "00095"]
;[Char(96) ; "00096"]
;[Char(97) ; "00097"]
;[Char(98) ; "00098"]
;[Char(99) ; "00099"]
;[Char(100) ; "00100"]
;[Char(101) ; "00101"]
;[Char(102) ; "00102"]
;[Char(103) ; "00103"]
;[Char(104) ; "00104"]
;[Char(105) ; "00105"]
;[Char(106) ; "00106"]
;[Char(107) ; "00107"]
;[Char(108) ; "00108"]
;[Char(109) ; "00109"]
;[Char(110) ; "00110"]
;[Char(111) ; "00111"]
;[Char(112) ; "00112"]
;[Char(113) ; "00113"]
;[Char(114) ; "00114"]
;[Char(115) ; "00115"]
;[Char(116) ; "00116"]
;[Char(117) ; "00117"]
;[Char(118) ; "00118"]
;[Char(119) ; "00119"]
;[Char(120) ; "00120"]
;[Char(121) ; "00121"]
;[Char(122) ; "00122"]
;[Char(123) ; "00123"]
;[Char(124) ; "00124"]
;[Char(125) ; "00125"]
;[Char(126) ; "00126"]
)
];
Char ( GetAsCSS ( _val ) )
)
Offline
Char (テキスト)も逆になるんですよね~。
全角だけなら以下で文字順が反転します。
Char ( GetAsCSS ( テキスト ))
全半角混在でも適用できる修正式案です。
(※ただし、元の全角英数文字は結果では復元できません。)
RomanHankaku(Char(Abs(GetAsCSS(RomanZenkaku(テキスト)))))
・「山田 太郎」→「郎太 田山」
・「あA2!**=^い」→「い^=**!2Aあ」
Offline
できました! 感動です。ありがとうございました!
Offline
すみません。早とちりしました。
Hiroさんので逆順になったのですが、肝心のソートができなかったです。もう少しお付き合いいただけるでしょうか。
Offline
ソートの設定方が違うのでは?
・逆引き用計算フィールド「逆引倒置」を対象にソート設定を掛けます。
・そのオプションで好みのソート順(昇順か降順かなど)のオプション指定を設定します
Offline
Pages: 1
[ Generated in 0.006 seconds, 11 queries executed - Memory usage: 574.7 KiB (Peak: 591.24 KiB) ]