A nono40

cs_apz Messages postés 281 Date d'inscription dimanche 7 avril 2002 Statut Membre Dernière intervention 11 avril 2013 - 7 mai 2002 à 23:18
cs_Nono40 Messages postés 962 Date d'inscription mercredi 3 avril 2002 Statut Membre Dernière intervention 12 septembre 2006 - 8 mai 2002 à 14:12
Salut,

le code suivant me donne l'erreur suivante:
Trop de parametres regionaux
dans la fonction delete(s, pos(' ',s),1);
je crois que le compilateur pour executer cette ligne se refere a TabDest.Delete au lieu de delete(s,pos(' ',s),1) !!?
alors comment faire comprendre au compilateur qu'il s'agit de delete appliqué sur les string et non pas celle appliqué sur les tables ?
je peux enlever tout simplement le With TabDest mais il n'y a pas une methode pour avoir le meme code sans avoir notre message d'erreur ?

var
s : string;
begin
With Tabdest Do
Begin
Open;
First;
While Not TabDest.EOF Do
Begin
s:=FieldByName('Ref').AsString;
If Pos(' ',s)<>0 Then
Begin
While Pos(' ',s)<>0 Do Delete(s,pos(' ',s),1);
Edit;
FieldByName('Ref').AsString:=s;
Post;
End;
Next;
End;
Close;
End;

une autre question : est-ce possible d'ouvrir deux table en meme temps pour eliminer ces espaces devant les champs de travail ?

5 réponses

cs_Delphiprog Messages postés 4297 Date d'inscription samedi 19 janvier 2002 Statut Membre Dernière intervention 9 janvier 2013 32
7 mai 2002 à 23:42
Au lieu de Delete, mets : System.Delete
(tu préfixes pour signifier au compilateur qu'il s'agit de la méthode Delete de l'unité System).

Et pardon à Nono40 d'avoir répondu à sa place :blush)
May Delphi be with you.
0
cs_Nono40 Messages postés 962 Date d'inscription mercredi 3 avril 2002 Statut Membre Dernière intervention 12 septembre 2006 2
8 mai 2002 à 01:51
No problem DelphiProg ;)

Pour la deuxième question : deux tables non, mais tu peux faire plusieurs champs de la table au même moment.

--- :sleepy) Nono du Moulin :sleepy) ---
0
cs_Delphiprog Messages postés 4297 Date d'inscription samedi 19 janvier 2002 Statut Membre Dernière intervention 9 janvier 2013 32
8 mai 2002 à 08:42
Pourquoi ne pas employer, tout simplement, les fonctions Trim, TrimLeft et TrimRight pour éliminer les espaces ???

May Delphi be with you.
0
cs_Delphiprog Messages postés 4297 Date d'inscription samedi 19 janvier 2002 Statut Membre Dernière intervention 9 janvier 2013 32
8 mai 2002 à 08:55
Suggestion :
remplacer le code par :

begin
With Tabdest Do
Begin
Open;
First;
While Not EOF Do
Begin
Edit;
FieldByName('Ref').AsString:= Trim(FieldByName('Ref').AsTring);
Post;
Next;
End; {While Not EOF}
Close;
end; {With Tabdest}
end;

Celà éviterait de boucler pour chaque enregistrement trouvé.

NB : les fonctions Trim sont contenues dans l'unité System et sont optimisées.

May Delphi be with you.
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
cs_Nono40 Messages postés 962 Date d'inscription mercredi 3 avril 2002 Statut Membre Dernière intervention 12 septembre 2006 2
8 mai 2002 à 14:12
Je n'avais pas conseiller Trim car... je ne la connaissait pas. :blush)

Merci donc pour le conseil. :)

--- :sleepy) Nono du Moulin :sleepy) ---
0
Rejoignez-nous