くだすれVB6.0以前(超初心者向け)
■ このスレッドは過去ログ倉庫に格納されています
0842デフォルトの名無しさん
2008/01/29(火) 00:03:55製品名(すべて半角)の末尾の半角数字でソートする必要があるのですが末尾の
数字の長さは固定ではありません。これをカウントする方法がわかればright$など
で処理できると思うのですが。
Delphiでのコードは以下のような感じです。
//末尾の半角数字+ハイフンを得る VPX26AP766-4 ⇒ 766-4
function GetEndNumStr(S :string) :string;
var
i,j,k: Integer;
S2 : string;
begin
if S = '' then Exit;
i := 0;
j := Length(S);
if S[j-1] = #13 then Dec(j,2); //改行コードを飛ばす
k := j;
while S[j] in ['0'..'9' ,'-'] do //末尾の半角数字+ハイフンの長さを得る
begin
Inc(i); Dec(j);
end;
if i > 0 then
begin
j := k; //元の値に戻す
SetLength(S2,i); // 12345 ・・・ i
repeat //VPX26AP766-4
S2[i] := S[j]; //123456789012 ・・・ j
dec(i); dec(j);
until i < 1;
end;
Result := S2;
end;
■ このスレッドは過去ログ倉庫に格納されています