1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53
|
function GetDescriptionByNum(const Num: string): string;
const
ASSOC: array[0..2] of record Num: string; Desc: string end =
(
(Num: '18049'; Desc: '9/DOOR (DOOR =SC1)'),
(Num: '2' ; Desc: '/TRV-HT (TRV-HT = SC1)'),
(Num: '4' ; Desc: 'en plein milieu')
);
var
I: Integer;
begin
for I := Low(ASSOC) to High(ASSOC) do
if ASSOC[I].Num = Num then
Exit(ASSOC[I].Desc);
Result := '[Not Found]';
end;
function RemplaceCabinet(const SC2: string): string;
const
TAG_BASE = 'CABINET_';
var
iStartTag, iStartNum, iEndTag: Integer;
Tag, Num, Remplacement: string;
begin
iStartTag := Pos(TAG_BASE, SC2);
if iStartTag > 0 then
begin
iStartNum := iStartTag + Length(TAG_BASE);
iEndTag := Pos(' ', SC2, iStartTag);
if iEndTag <= 0 then
iEndTag := Length(SC2) + 1;
Tag := Copy(SC2, iStartTag, iEndTag - iStartTag);
Num := Copy(SC2, iStartNum, iEndTag - iStartNum);
// ici un recherche dans une table pour convertir Num en la chaine correspondante
Remplacement := GetDescriptionByNum(Num);
result := Copy(SC2, 1, iStartTag - 1) + Remplacement + Copy(SC2, iEndTag);
end
else
result := '?';
end;
procedure TForm1.Button1Click(Sender: TObject);
begin
ShowMessage(RemplaceCabinet('MEUBLE B HAUT CABINET_18049'));
ShowMessage(RemplaceCabinet('MEUBLE FOUR CABINET_2'));
ShowMessage(RemplaceCabinet('MEUBLE FOUR CABINET_4 avec la suite'));
end; |
Partager