PC SOFT

FORUMS PROFESSIONNELS
WINDEVWEBDEV et WINDEV Mobile

Accueil → WINDEV 2024 → Extrait D'octets Dans une Chaine de Saisie
Extrait D'octets Dans une Chaine de Saisie
Débuté par Christian, 14 nov. 2006 15:56 - 9 réponses
Posté le 14 novembre 2006 - 15:56
Salut a tous ,



J'ai crée une fenétre avec deux champs de saisie et je vouderais supprimer les dates a chaque fin de ligne .

Exemple :
Dans Saisie 1: je Mets :

11111111111111111111111111 : 10/10/1972
22222222222222222222222222 :13/04/1981
33333333333333333333333333 : 17/01/1973
44444444444444444444444444 :17/12/1967



J'aurais dans saisie2 :

1111111111111111111111111
2222222222222222222222222
3333333333333333333333333
4444444444444444444444444


Voici le code que j'ai utilisé mais il copie les dates de saisie1 vers saisie2 sans supprimer les dates :



i est un entier
sSource est une chaine

Pour i = 1 a 100
Si sSource <> "" Alors sSource += RC
sSource += NumériqueVersChaine(i,"03d")

Fin




Merci pour vos idées et suggestions !
Posté le 14 novembre 2006 - 16:33
Essaie ceci:

i est un entier
POUR 1=1 a 100
Saisie2[i] = ExtraitChaine(Saisie1[i],1,":",DepuisDébut)

....//Traitement

FIN

":" étant le séparateur entre texte et date

Fred(CH)
Posté le 14 novembre 2006 - 17:06
Merci Fred pour ton aide , mais dans le code y'a quelques erreurs soulignés en rouge que tu pourra essayer toi méme sur une fenétre et 2 champs de saisie : tu verras quand tu mets dans le 1 er champ ( Saisie1 ):

111111111111111111 : 12/10/1973
222222222222222222 : 29/12/1949
333333333333333333 : 17/03/1971



Dans saisie2 t'auras la méme chose les dates ne sont pas supprimés
Posté le 14 novembre 2006 - 17:22
Je suis désolé de te contredire, mais par aquit de consience, j'ai testé
est tout fonctione très bien:

111111111111 : 12/10/2006

donne:

111111111111


Tiens nous au courant.
Posté le 14 novembre 2006 - 17:47
Salut Fred ,

je t'en prie y'a pas de soucis , c'est juste que j'ai des ereurs quand je mets ton code

Merci de corriger :


i est un entier

POUR 1=1 a 100

Saisie2[i] = ExtraitChaine(Saisie1[i],1,":",DepuisDébut)

....//Traitement

FIN


Quand je mets le code POUR 1 est souligner en rouge




Merci de Corriger si je me suis tromper .
Posté le 14 novembre 2006 - 18:20
Pardon il y avait une faute de frappe. Le "1" c'est normalement un "i". <POUR i = ...>

i est un entier

POUR i = 1 a 100

Saisie2[i] = ExtraitChaine(Saisie1[i],1,":",DepuisDébut)

....//Traitement

FIN

Désolé ?
Posté le 14 novembre 2006 - 20:14
Salut ,



Ton code Fonctionne trés trés bien sauf que si je mets plusieurs ligne il traite que la 1ére ligne seulement pas les autres , ce que je veux c'est de traiter toutes les lignes dans le champ , j'ai penser a la fonction extrait chaine j'ai essayer ce code merci de me corriger :






ligne est une chaîne

// Ajout un RC en fin de ligne pour éviter une erreur avec la fonction rang
SI Droite(SAI1,1)<>RC ALORS

SAI1=SAI1 RC
FIN

// Extrait la première chaîne
ligne = ExtraitChaîne(SAI1,rangPremier,RC)

// Traite la chaîne et passe à la suivante tant que la chaîne n'est pas vide
TANTQUE ligne<>""
Ligne = ExtraitChaîne(SAI1,1,":",DepuisDébut) ligne


ligne = ExtraitChaîne(SAI1,rangSuivant,RC)

FIN









i est un entier

POUR i = 1 A 100




SAI2 = ExtraitChaîne(SAI1,1,":",DepuisDébut)









....//Traitement

FIN







Merci
Posté le 14 novembre 2006 - 20:14
Salut Fred ,


Merci pour ton intervention , ton code fonctionne maintenant trés bien sauf qu'il traire la 1ére ligne pas les autres lignes c'est a dire : dans saisie1 :


11111111111111111 : 12/10/2006
2222222222222222: 18/12/1949
3333333333333333: 11/03/1937
4444444444444444: 01/12/1981



J'ai Dans Saisie2 :

11111111111111111111111



il traite pas toutes les lignes sauf la premiére , si t'as une idée ou un code a me conseiller .





Merci Fred (CH)
Posté le 15 novembre 2006 - 00:36
Bonjour,

Je pense que cette amélioration de la dernière solution sera bonne :


TexteS1 est une chaine=Saisie1 RC
Ligne est une chaine=ExtraitChaîne(TexteS1 ,rangPremier,RC)
TANTQUE Ligne <> ""
Saisie2 = ExtraitChaîne(Ligne,":",DepuisDébut) RC
ligne = ExtraitChaîne(TexteS1 ,rangSuivant,RC)
FIN

Bon Dev.

--
Ali Hindi : Alidev7@yahoo.fr
Posté le 15 novembre 2006 - 20:13
Merci Hindi pour ton aide !