Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1461 connectés 

  FORUM HardWare.fr
  Programmation
  VB/VBA/VBS

  noobie en VB: retour a la ligne + placement de texte autour du résulat

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

noobie en VB: retour a la ligne + placement de texte autour du résulat

n°607153
boobax
il BuongiornoSiVedeDalTacchino
Posté le 10-01-2004 à 16:45:14  profilanswer
 

voila  
g obtenu le code source suivant qui permet de faire ce que je veux mais il utilise que 3 lettres : a, b, c.  
et je voudrais les 26 lettres de l'alphabet en gardant 3 caracteres ....
qu'est ce qu'il faut modifier ?
Et je voudrais qu'il m'affiche le résultat soit dans word soit dans un fichier texte au lieu d'une boite de dialogue  
Merci pour vos reponses  :hello:  

Code :
  1. Public Sub AppelleGeneMot()
  2. Dim chaine As String
  3. Dim PosLettre(1 To 3) As Integer 'initiale un tableau de n case pour un mot à n lettre
  4. chaine = ""
  5. PosLettre(1) = 1
  6. PosLettre(2) = 1
  7. PosLettre(3) = 1
  8. 'le premier chiffre correspond au nombre lettre de la chaine ex abc = 3
  9. ' le deuxieme correspond au nombre de lettre voulue en sortie ex 3= aaa,aab,aac 2=aa,ab,ac
  10. GeneMot "abc", PosLettre, chaine, 3, 3
  11. MsgBox chaine
  12. End Sub
  13. Public Function GeneMot(chaine As String, PosLettre As Variant, ch As String, LongeurChaine As Integer, nbLettreVoulue As Integer)
  14. While PosLettre(1) < LongeurChaine + 1
  15.    
  16.     For l = 1 To nbLettreVoulue
  17.         a = a & Mid(chaine, PosLettre(l), 1)
  18.     Next l
  19.     ch = ch & a & Chr(13)
  20.    
  21.     For m = nbLettreVoulue To 1 Step -1
  22.         If PosLettre(m) = LongeurChaine Then
  23.             If m <> 1 Then
  24.                 PosLettre(m) = 1
  25.             Else
  26.                 PosLettre(m) = PosLettre(m) + 1
  27.             End If
  28.         Else
  29.             PosLettre(m) = PosLettre(m) + 1
  30.             Exit For
  31.         End If
  32.     Next m
  33.     GeneMot chaine, PosLettre, ch, LongeurChaine, nbLettreVoulue
  34. Wend
  35. End Function


Message édité par boobax le 11-01-2004 à 19:04:22
mood
Publicité
Posté le 10-01-2004 à 16:45:14  profilanswer
 

n°607161
jagstang
Pa Capona ಠ_ಠ
Posté le 10-01-2004 à 16:49:57  profilanswer
 

hem

n°607163
boobax
il BuongiornoSiVedeDalTacchino
Posté le 10-01-2004 à 16:51:17  profilanswer
 

:heink:

n°607166
boobax
il BuongiornoSiVedeDalTacchino
Posté le 10-01-2004 à 16:55:53  profilanswer
 

c bon g trouvé pour ajouter des lettres
Maintenant je voudrais savoir pour ajouter ca a un fichier texte ou dans word ou dans un truc exploitable pour du copier coller :hello:

n°608159
phenxdesig​n
Posté le 11-01-2004 à 17:43:46  profilanswer
 

Open [adresse et nom du fichier] for Output as #[numero de fichier entre 1 et 512]
Write [la variable], #[numero de fichier entre 1 et 512, le meme qui est deja mis]
Close #[numero de fichier entre 1 et 512, le meme qui est deja mis]
 
il faut pas mettre les accolades, et si tu veux rajouter une ligne a chaque fois, mets Append au lieu de Output
 
vala

n°608226
boobax
il BuongiornoSiVedeDalTacchino
Posté le 11-01-2004 à 19:10:09  profilanswer
 

Merci pour ta réponse PhenXDesign
Donc voila je voudrais avoir en sorti les résultat sur le fichier texte comme ca :
 
aaa
aab
aac
...
 
mais je voudrais ajouter le texte machin avant et le texte truc aprés chaque résultat pour que ca devienne
 
machinaaatruc
machinaabtruc
machinaactruc
machin...truc
...
'machin et 'truc garderont toujours la même valeure
Qu'ajouter dans le code ?

Code :
  1. Public Sub AppelleGeneMot()
  2. Dim chaine As String
  3. Dim PosLettre(1 To 3) As Integer 'initiale un tableau de n case pour un mot à n lettre
  4. chaine = ""
  5. PosLettre(1) = 1
  6. PosLettre(2) = 1
  7. PosLettre(3) = 1
  8. 'le premier chiffre correspond au nombre lettre de la chaine ex abc = 3
  9. ' le deuxieme correspond au nombre de lettre voulue en sortie ex 3= aaa,aab,aac 2=aa,ab,ac
  10. GeneMot "abcdefghijklm", PosLettre, chaine, 13, 3
  11. Open "C:\machin.txt" For Output As #1
  12. Write #1, chaine,
  13. Close #1, 1
  14. End Sub
  15. Public Function GeneMot(chaine As String, PosLettre As Variant, ch As String, LongeurChaine As Integer, nbLettreVoulue As Integer)
  16. While PosLettre(1) < LongeurChaine + 1
  17.    
  18.     For l = 1 To nbLettreVoulue
  19.         a = a & Mid(chaine, PosLettre(l), 1)
  20.     Next l
  21.     ch = ch & a & Chr(13)
  22.    
  23.     For m = nbLettreVoulue To 1 Step -1
  24.         If PosLettre(m) = LongeurChaine Then
  25.             If m <> 1 Then
  26.                 PosLettre(m) = 1
  27.             Else
  28.                 PosLettre(m) = PosLettre(m) + 1
  29.             End If
  30.         Else
  31.             PosLettre(m) = PosLettre(m) + 1
  32.             Exit For
  33.         End If
  34.     Next m
  35.     GeneMot chaine, PosLettre, ch, LongeurChaine, nbLettreVoulue
  36. Wend
  37. End Function


Message édité par boobax le 11-01-2004 à 19:17:13
n°608242
phenxdesig​n
Posté le 11-01-2004 à 19:28:44  profilanswer
 

sa se complique
 
 
tu as deja ecris les aaa, aab ... dans le fichier ?
si oui, il faut utiliser une boucle :
while EOF(1)=false
 
wend
 
a l'interieur, il faut lire tout le fichier et mettre chaque ligne dans une variable tableau :
dim VariableTablo(1 to n) as string
 
en ouvrant le fichier avant la boucle ( avec open ? for input as #1 ), puis lire une ligne par cycle de boucle (input VariableTablo, #1 ), en incrementant n de 1 a chaque cycle
puis fermer le fichier
 
 
il faut ensuite modifier chak variable :
VariableTablo(1) = machin & VariableTablo(1) & truc
avec une boucle
 
puis de reecrire tt sa avec un boucle
 
vala

boobax a écrit :

Merci pour ta réponse PhenXDesign
Donc voila je voudrais avoir en sorti les résultat sur le fichier texte comme ca :
 
aaa
aab
aac
...
 
mais je voudrais ajouter le texte machin avant et le texte truc aprés chaque résultat pour que ca devienne
 
machinaaatruc
machinaabtruc
machinaactruc
machin...truc
...
'machin et 'truc garderont toujours la même valeure
Qu'ajouter dans le code ?

Code :
  1. Public Sub AppelleGeneMot()
  2. Dim chaine As String
  3. Dim PosLettre(1 To 3) As Integer 'initiale un tableau de n case pour un mot à n lettre
  4. chaine = ""
  5. PosLettre(1) = 1
  6. PosLettre(2) = 1
  7. PosLettre(3) = 1
  8. 'le premier chiffre correspond au nombre lettre de la chaine ex abc = 3
  9. ' le deuxieme correspond au nombre de lettre voulue en sortie ex 3= aaa,aab,aac 2=aa,ab,ac
  10. GeneMot "abcdefghijklm", PosLettre, chaine, 13, 3
  11. Open "C:\machin.txt" For Output As #1
  12. Write #1, chaine,
  13. Close #1, 1
  14. End Sub
  15. Public Function GeneMot(chaine As String, PosLettre As Variant, ch As String, LongeurChaine As Integer, nbLettreVoulue As Integer)
  16. While PosLettre(1) < LongeurChaine + 1
  17.    
  18.     For l = 1 To nbLettreVoulue
  19.         a = a & Mid(chaine, PosLettre(l), 1)
  20.     Next l
  21.     ch = ch & a & Chr(13)
  22.    
  23.     For m = nbLettreVoulue To 1 Step -1
  24.         If PosLettre(m) = LongeurChaine Then
  25.             If m <> 1 Then
  26.                 PosLettre(m) = 1
  27.             Else
  28.                 PosLettre(m) = PosLettre(m) + 1
  29.             End If
  30.         Else
  31.             PosLettre(m) = PosLettre(m) + 1
  32.             Exit For
  33.         End If
  34.     Next m
  35.     GeneMot chaine, PosLettre, ch, LongeurChaine, nbLettreVoulue
  36. Wend
  37. End Function




Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  VB/VBA/VBS

  noobie en VB: retour a la ligne + placement de texte autour du résulat

 

Sujets relatifs
Résolu : Comment rendre invisible dynamiquement une zone de texte?PB champ de texte + récupération données
affichage de texte japonais chinois russe ...Infos bulles sur du texte,=?
[SQLPlus] Peut on enchainer des commandes sur 1 seule ligne ?Orientation d'un texte vertical en php !?
Lecture d'un fichier Texte et affectation dans variables ksh[DOS]caractère ligne suite, ça existe ?
Table et form, comment faire un form par ligne ?[php]rechrcher du texte dans un fichier.
Plus de sujets relatifs à : noobie en VB: retour a la ligne + placement de texte autour du résulat


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR