Extraction des données dans une base SQL en Delphi

tarbangdo Messages postés 4 Date d'inscription vendredi 19 novembre 2004 Statut Membre Dernière intervention 31 octobre 2005 - 29 avril 2005 à 17:18
japee Messages postés 1727 Date d'inscription vendredi 27 décembre 2002 Statut Modérateur Dernière intervention 6 novembre 2021 - 29 avril 2005 à 23:55
Nom para Col001 Col002 Col003 Col004

Para1 20/04/2004 00 :00 A 140 25 635
Para1 20/04/2004 00 :00 B 15 589 100
Para1 20/04/2004 01 :00 C 140 25 00
Para1 20/04/2004 01 :00 D 25 36 256
Para 220/04/2004 00 :00 E 12 25 45
Voici mon probléme .Comment extraire uniquement 25 du champ Col004
(Rappellons que 140 25 635 sont du meme champ Col004) en fonction
du nom du champ Col003 (Exple A) du champ Col002 et Col003( date et Heure) et du nom du parametre.Rappelons que cette valeur doit etre utilisée dans des
calcul d'autres éléments.

Mreci pour votre indulgence.

3 réponses

tarbangdo Messages postés 4 Date d'inscription vendredi 19 novembre 2004 Statut Membre Dernière intervention 31 octobre 2005
29 avril 2005 à 17:21
Nom para Col001 Col002 Col003 Col004

Para1 20/04/2004 00:00 A 140 25 635
Para 20/04/2004 00:00 B 15 589 100
Para 20/04/2004 01:00 C 140 25 00
Par 20/04/2004 01:00 D 25 36 256
Para 220/04/2004 00:00 E 12 25 45

Voici mon probléme .Comment extraire uniquement 25 du champ Col004
(Rappellons que 140 25 635 sont du meme champ Col004) en fonction
du nom du champ Col003 (Exple A) du champ Col002 et Col003( date et Heure) et du nom du parametre.Rappelons que cette valeur doit etre utilisée dans des
calcul d'autres éléments.

Mreci pour votre indulgence

Mreci pour votre indulgence.
0
japee Messages postés 1727 Date d'inscription vendredi 27 décembre 2002 Statut Modérateur Dernière intervention 6 novembre 2021 8
29 avril 2005 à 19:56
Bah, tu passes le string récupéré à la moulinette pour en extraire le 2ème mot, non ?



Allez, une petite fonction vite fait comme ça :



function RecupSecondData(S: String): String;

var i, j: Integer;

begin

Result := '';

j := 1;

for i := 1 to Length(S) do

begin

if S[i] = ' ' then

begin

Delete(S, 1, i); ShowMessage(S);

S := TrimLeft(S);

repeat

Result := Result + S[j];

Inc(j);

until (S[j] = ' ') or (j > Length(S));

Break;

end;

end;

end;



Bonne prog'



Et n'oublie pas de cliquer sur réponse acceptée si ça te convient, j'y ai quand même passé 5 minutes ,lol
0
japee Messages postés 1727 Date d'inscription vendredi 27 décembre 2002 Statut Modérateur Dernière intervention 6 novembre 2021 8
29 avril 2005 à 23:55
Je viens de relire ma fonction... j'aurais dû y consacrer 10 secondes de plus pour la relire.



Il faut bien sûr supprimer "ShowMessage(S)" à la ligne 10. C'était
uniquement pour tester la progression, j'ai oublié de l'enlever.



Je la refais toute belle toute propre :



function RecupSecondData(S: String): String;

var i, j: Integer;

begin

Result := '';

j := 1;

for i := 1 to Length(S) do

begin

if S[i] = ' ' then

begin

Delete(S, 1, i);

S := TrimLeft(S);

repeat

Result := Result + S[j];

Inc(j);

until (S[j] = ' ') or (j > Length(S));

Break;

end;

end;

end;



Bonne prog'



japee
0
Rejoignez-nous