var
n: TStringList;
l:integer;
begin
n:=TStringList.Create();
n.LoadFromFile('C:\bureaux\donner.txt');
for l:= 0 to n.Count-1 do
begin
if pos('DONNER3',n[l])>0 then
listbox1.Items.Add(n[l]);
if pos('VALEUR',n[l])>0 then
listbox2.Items.Add(n[l]);
end;
end;
var
count ,i,j :integer;
s1 ,s2:string;
begin
count := 1;
for i:=0 to ListBox1.Items.Count-1 do begin
s1 := ListBox1.Items[i];
for j:=0 to ListBox2.Items.Count-1 do begin
s2 := ListBox2.Items[j];
if pos('HT,S1')
var@+
ListSrc : TStringList;
ListTemp : TStringList;
I : Integer;
AdVal : array [0..4] of Integer;
begin
ListSrc := TStringList.Create;
ListTemp := TStringList.Create;
try
ListSrc.LoadFromFile('C:\bureaux\donner.txt');
ListTemp.StrictDelimiter := True;
ListTemp.Delimiter := ' ';
ListBox1.Clear;
ListBox2.Clear;
for I := 0 to 4 do
AdVal[I] := 0;
for I := 0 to ListSrc.Count - 1 do
begin
ListTemp.DelimitedText := ListSrc[I];
ListBox1.Items.Add(ListTemp[2]);
ListBox2.Items.Add(ListTemp[3]);
if ListTemp[2] = 'HT' then
case StrToInt(ListTemp[3]) of
10 : AdVal[0] := AdVal[0] + 10;
20 : AdVal[1] := AdVal[1] + 20;
30 : AdVal[2] := AdVal[2] + 30;
end
else
case StrToInt(ListTemp[3]) of
10 : AdVal[3] := AdVal[3] + 10;
30 : AdVal[4] := AdVal[4] + 30;
end;
end;
finally
ListSrc.Free;
ListTemp.Free;
end;
ShowMessage(Format('HT10=%d'#13#10'HT20=%d'#13#10'HT30=%d'#13#10'NT10=%d'#13#10'NT30=%d',
[AdVal[0],AdVal[1],AdVal[2],AdVal[3],AdVal[4]]));
début
entre de donner:
configuration de donner :
DONNER1 DONNER2 DONNER3 VALEUR
WT1-100 NT1-100 HT 10
WT1-101 NT1-101 HT 20
WT1-102 NT1-102 NT 10
WT1-103 NT1-103 NT 30
WT1-104 NT1-104 HT 30
WT1-105 NT1-105 NT 10
WT1-106 NT1-106 HT 20
WT1-107 NT1-107 HT 30
WT1-108 NT1-108 NT 30
FIN
for I := 0 to ListSrc.Count - 1 domettre à la place de 0 le début des données (le numéro de ligne ici apparemment : 5 => WT1-100) et à la place de "ListSrc.Count - 1" la fin des données...ou faire en automatique la recherche de position de début, fin...en fait le morceau de code que j'ai fait, fait en automatique la séparation des données et l'addition...StrictDelimiter pas connu ? donc vieille version de delphi je pense :p
var
Deb, Fin : Integer;
...
for I := 0 to 4 do
AdVal[I] := 0;
for I := 0 to ListSrc.Count - 1 do
begin
if Pos('WT1-',ListSrc[I]) <> 0 then
begin
Deb := I;
Break;
end
else
Deb := I;
end;
for I := Deb to ListSrc.Count - 1 do
begin
if Pos('WT1-',ListSrc[I]) = 0 then
begin
Fin := I - 1;
Break;
end
else
Fin:= ListSrc.Count - 1;
end;
for I := Deb to Fin do
begin
...
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
début
entre de donner:
configuration de donner :
DONNER1 DONNER2 DONNER3 VALEUR
WT1-100 NT1-100 HT 10
WT1-101 NT1-101 HT 20
WT1-102 NT1-102 NT 10
WT1-103 NT1-103 NT 30
WT1-104 NT1-104 HT 30
WT1-105 NT1-105 NT 10
WT1-106 NT1-106 HT 20
WT1-107 NT1-107 HT 30
WT1-108 NT1-108 NT 30
WT-109 NT1-109 HT 10
WT-110 NT1-110 HT 20
WT-111 NT1-111 NT 30
Fin
var
Deb, Fin : Integer;
...
for I := 0 to 4 do
AdVal[I] := 0;
for I := 0 to ListSrc.Count - 1 do
begin
if Pos('WT1-',ListSrc[I]) <> 0 then
begin
Deb := I;
Break;
end
else
Deb := I;
end;
for I := Deb to ListSrc.Count - 1 do
begin
if (Pos('WT-',ListSrc[I])<> 0) then
begin
Deb := I;
Break;
end
else
Deb:=I;
end;
for I := Deb to ListSrc.Count - 1 do
begin
if Pos('WT1-',ListSrc[I]) = 0 then
begin
Fin := I - 1;
Break;
end
else
Fin:= ListSrc.Count - 1;
end;
for I := Fin to ListSrc.Count - 1 do
begin
if (Pos('WT-',ListSrc[I])=0) then
begin
Fin := I - 1;
Break;
end
else
Fin:= ListSrc.Count - 1;
for I := Deb to Fin do
begin
...
var
AdValWT1 : array [0..4] of Integer; //Remplace AdVal...
AdValWT : array [0..2] of Integer;
...
if Pos('-',listTemp[0]) = 3 then //Position de "-" en 3 pour "WT-"
if ListTemp[2] = 'HT' then
case StrToInt(ListTemp[3]) of
10 : AdValWT[0] := AdValWT[0] + 10;
20 : AdValWT[1] := AdValWT[1] + 20;
end
else
case StrToInt(ListTemp[3]) of
30 : AdValWT[2] := AdValWT[2] + 30;
end;
if Pos('-',listTemp[0]) = 4 then //Position de "-" en 4 pour "WT1-"
if ListTemp[2] = 'HT' then
case StrToInt(ListTemp[3]) of
10 : AdValWT1[0] := AdValWT1[0] + 10;
20 : AdValWT1[1] := AdValWT1[1] + 20;
30 : AdValWT1[2] := AdValWT1[2] + 30;
end
else
case StrToInt(ListTemp[3]) of
10 : AdValWT1[3] := AdValWT1[3] + 10;
30 : AdValWT1[4] := AdValWT1[4] + 30;
end;
...
var
Deb, Fin : Integer;
AdValWT1 : array [0..4] of Integer;
AdValWT : array [0..2] of Integer;
...
for I := 0 to 4 do
AdValWT1 := 0;
AdValWT :=0;
for I := 0 to ListSrc.Count - 1 do
begin
if Pos('WT1-',ListSrc[I]) <> 0 then
begin
Deb := I;
Break;
end
else
Deb := I;
end;
for I := Deb to ListSrc.Count - 1 do
begin
if (Pos('WT-',ListSrc[I])<> 0) then
begin
Deb := I;
Break;
end
else
Deb:=I;
end;
for I := Deb to ListSrc.Count - 1 do
begin
if Pos('WT1-',ListSrc[I]) = 0 then
begin
Fin := I - 1;
Break;
end
else
Fin:= ListSrc.Count - 1;
end;
for I := Fin to ListSrc.Count - 1 do
begin
if (Pos('WT-',ListSrc[I])=0) then
begin
Fin := I - 1;
Break;
end
else
Fin:= ListSrc.Count - 1;
for I := Deb to Fin do
begin
ListTemp.DelimitedText := ListSrc[I];
ListBox1.Items.Add(ListTemp[2]);
ListBox2.Items.Add(ListTemp[3]);
if Pos('-',listTemp[0]) = 3 then //Position de "-" en 3 pour "WT-"
if ListTemp[2] = 'HT' then
case StrToInt(ListTemp[3]) of
10 : AdValWT[0] := AdValWT[0] + 10;
20 : AdValWT[1] := AdValWT[1] + 20;
end
else
case StrToInt(ListTemp[3]) of
30 : AdValWT[2] := AdValWT[2] + 30;
end;
if Pos('-',listTemp[0]) = 4 then //Position de "-" en 4 pour "WT1-"
if ListTemp[2] = 'HT' then
case StrToInt(ListTemp[3]) of
10 : AdValWT1[0] := AdValWT1[0] + 10;
20 : AdValWT1[1] := AdValWT1[1] + 20;
30 : AdValWT1[2] := AdValWT1[2] + 30;
end
else
case StrToInt(ListTemp[3]) of
10 : AdValWT1[3] := AdValWT1[3] + 10;
30 : AdValWT1[4] := AdValWT1[4] + 30;
end;
finally
ListSrc.Free;
ListTemp.Free;
end;
ShowMessage(Format('HT10=%d'#13#10'HT20=%d'#13#10'HT30=%d'#13#10'NT10=%d'#13#10'NT30=%d',
[AdValWT1[0],AdValWT1[1],AdValWT1[2],AdValWT1[3],AdValWT1[4]]));
ShowMessage(Format('HT10=%d'#13#10'HT20=%d'#13#10'NT30=%d'#13#10,
[AdValWT [0],AdValWT [1],AdValWT [2]]));
end;
var
Deb, Fin : Integer;
...
for I := 0 to 4 do
AdVal[I] := 0;
for I := 0 to ListSrc.Count - 1 do
begin
if Pos('WT',ListSrc[I]) <> 0 then
begin
Deb := I;
Break;
end
else
Deb := I;
end;
for I := Deb to ListSrc.Count - 1 do
begin
if Pos('WT',ListSrc[I]) = 0 then
begin
Fin := I - 1;
Break;
end
else
Fin:= ListSrc.Count - 1;
end;
for I := Deb to Fin do
begin...
...var@+
ListSrc : TStringList;
ListTemp : TStringList;
I : Integer;
AdValWT : array [0..4] of Integer;
AdValWT1 : array [0..4] of Integer;
Deb,Fin : Integer;
begin
ListSrc := TStringList.Create;
ListTemp := TStringList.Create;
try
ListSrc.LoadFromFile('C:\bureaux\donner.txt');
ListTemp.Delimiter := ' ';
ListBox1.Clear;
ListBox2.Clear;
for I := 0 to 4 do
begin
AdValWT[I] := 0;
AdValWT1[I] := 0;
end;
for I := 0 to ListSrc.Count - 1 do
begin
if Pos('WT',ListSrc[I]) <> 0 then
begin
Deb := I;
Break;
end;
end;
for I := Deb to ListSrc.Count - 1 do
begin
if Pos('WT',ListSrc[I]) = 0 then
begin
Fin := I-1;
Break;
end;
end;
for I := Deb to Fin do
begin
ListTemp.DelimitedText := ListSrc[I];
ListBox1.Items.Add(ListTemp[2]);
ListBox2.Items.Add(ListTemp[3]);
if Pos('-',listTemp[0]) = 3 then
if ListTemp[2] = 'HT' then
case StrToInt(ListTemp[3]) of
10 : AdValWT[0] := AdValWT[0] + 10;
20 : AdValWT[1] := AdValWT[1] + 20;
30 : AdValWT[2] := AdValWT[2] + 30;
end
else
case StrToInt(ListTemp[3]) of
10 : AdValWT[3] := AdValWT[3] + 10;
30 : AdValWT[4] := AdValWT[4] + 30;
end;
if Pos('-',listTemp[0]) = 4 then
if ListTemp[2] = 'HT' then
case StrToInt(ListTemp[3]) of
10 : AdValWT1[0] := AdValWT1[0] + 10;
20 : AdValWT1[1] := AdValWT1[1] + 20;
30 : AdValWT1[2] := AdValWT1[2] + 30;
end
else
case StrToInt(ListTemp[3]) of
10 : AdValWT1[3] := AdValWT1[3] + 10;
30 : AdValWT1[4] := AdValWT1[4] + 30;
end;
end;
finally
ListSrc.Free;
ListTemp.Free;
end;
ShowMessage(Format('WT'#13#10'HT10=%d'#13#10'HT20=%d'#13#10'HT30=%d'#13#10'NT10=%d'#13#10'NT30=%d',
[AdValWT1[0],AdValWT1[1],AdValWT1[2],AdValWT1[3],AdValWT1[4]]));
ShowMessage(Format('WT1'#13#10'HT10=%d'#13#10'HT20=%d'#13#10'HT30=%d'#13#10'NT10=%d'#13#10'NT30=%d',
[AdValWT[0],AdValWT[1],AdValWT[2],AdValWT[3],AdValWT[4]]));
...
ShowMessage(Format('WT1'#13#10'HT10=%d'#13#10'HT20=%d'#13#10'HT30=%d'#13#10'NT10=%d'#13#10'NT30=%d',
[AdValWT1[0],AdValWT1[1],AdValWT1[2],AdValWT1[3],AdValWT1[4]]));
WT
HT10=10
HT20=20
HT30=0
NT10=0
NT30=30
WT1
HT10=10
HT20=40
HT30=60
NT10=20
NT30=60
for I := 0 to ListSrc.Count - 1 do
begin
if Pos('WT',ListSrc[I]) <> 0 then
begin
Deb := I;
Break;
end;
end;
for I := Deb to ListSrc.Count - 1 do
begin
if Pos('WT',ListSrc[I]) = 0 then
begin
Fin := I-1;
Break;