初心者のFileMaker pro Q&A (旧掲示板)

みんなに優しく、解りやすくをモットーに開設しています。 以下のルールを守りみんなで助け合いましょう。

1.ファイルメーカーで解らない事があればここで質問して下さい。 何方でも、ご質問・ご回答お願いします。 (優しく回答しましょう)

You are not logged in.

Announcement

新しい掲示板は、こちら:https://fm-aid.com/forum/t/filemaker


#1 2020-07-08 08:16:53

zokka
Member

文字列の後ろ側からのソート

Mac OS Catalina FileMaker19です。

逆引き辞典のように、文字列の後ろ側からのソートはできるでしょうか?
よろしくお願いします。

Offline

#2 2020-07-08 08:55:05

Shin
Member

Re: 文字列の後ろ側からのソート

逆引きの計算フィールドを作り、それでソートする、しかないでしょうね。

Offline

#3 2020-07-08 12:55:36

Hiro
Member

Re: 文字列の後ろ側からのソート

逆引き用計算フィールド「逆引倒置」を別途追加し、それで標準ソートすれば可能です。
この「逆引倒置」の簡略な式例は、(計算結果:テキスト、索引:保存)
(※式のポイントは、Code(文字列)の結果文字コード配置が逆順になる関数特性を利用)

Code(文字列フィールド & Char(1))

Last edited by Hiro (2020-07-08 13:08:23)

Offline

#4 2020-07-08 13:18:28

himadanee
Guest

Re: 文字列の後ろ側からのソート

Codeを使うのはナイスアイデアですね。
文字数が約5倍になるのが難点か...100文字しか索引になりません。
FM19なので平凡にWhile関数で反転もできますね。

#5 2020-07-08 13:38:12

qb_dp
Member

Re: 文字列の後ろ側からのソート

なるほど。
Char (テキスト)も逆になるんですよね~。

全角だけなら以下で文字順が反転します。
Char ( GetAsCSS ( テキスト ))

Offline

#6 2020-07-08 14:33:55

qb_dp
Member

Re: 文字列の後ろ側からのソート

ちょっと作ってみました。検証少なめ...。

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

#7 2020-07-08 16:11:42

Hiro
Member

Re: 文字列の後ろ側からのソート

#5>qb_dp wrote:

Char (テキスト)も逆になるんですよね~。
全角だけなら以下で文字順が反転します。
Char ( GetAsCSS ( テキスト ))

全半角混在でも適用できる修正式案です。
(※ただし、元の全角英数文字は結果では復元できません。)

RomanHankaku(Char(Abs(GetAsCSS(RomanZenkaku(テキスト)))))

・「山田 太郎」→「郎太 田山」
・「あA2!**=^い」→「い^=**!2Aあ」

Offline

#8 2020-07-08 17:17:20

zokka
Member

Re: 文字列の後ろ側からのソート

できました! 感動です。ありがとうございました!

Offline

#9 2020-07-08 17:57:39

zokka
Member

Re: 文字列の後ろ側からのソート

すみません。早とちりしました。
Hiroさんので逆順になったのですが、肝心のソートができなかったです。もう少しお付き合いいただけるでしょうか。

Offline

#10 2020-07-08 18:33:27

Hiro
Member

Re: 文字列の後ろ側からのソート

ソートの設定方が違うのでは?

・逆引き用計算フィールド「逆引倒置」を対象にソート設定を掛けます。
・そのオプションで好みのソート順(昇順か降順かなど)のオプション指定を設定します

Offline

Registered users online in this topic: 0, guests: 1
[Bot] ClaudeBot

Board footer

Powered by FluxBB
Modified by Visman

[ Generated in 0.006 seconds, 9 queries executed - Memory usage: 574.98 KiB (Peak: 591.52 KiB) ]