- VBS - Comment concaténer [Résolu ] - VB/VBA/VBS - Programmation
Marsh Posté le 18-03-2005 à 09:40:45
sub ppale()
dim chaine1 as string, chaine2 as string,result as string
chaine1=litFichierText("C:\...\01.txt" )
chaine2=litFichierText("C:\...\02.txt" )
result=chaine1+chaine2
end sub
function litFichierText(chemin as string) as string
dim result as string
result=""
Open chemin+"01.txt" For Input As #1
Do While EOF(1) = False
Line Input #1, Ligne
result=result+ligne
Loop
Close
litFichierText=result
End Function
Il faut lancer la procédure ppale() et le résultat se trouve dans result. Cette méthode marche aussi pour concaténer 2 fichiers texte qui ne font pas forcément 1 ligne.
Marsh Posté le 18-03-2005 à 10:25:32
Merci mais hélas çà ne marche pas.
Erreur ligne 2 , caractère 17.
J'ai bien renseigné result="c:\03.txt"
Tu aurais une idée ?
Marsh Posté le 18-03-2005 à 11:16:33
Essaye comme ça:
sub ppale()
dim chaine1 as string, chaine2 as string,result as string
chaine1=litFichierText("C:\01.txt" )
chaine2=litFichierText("C:\02.txt" )
Cells(1,1)=chaine1+chaine2
end sub
function litFichierText(chemin as string) as string
dim result as string
result=""
Open chemin For Input As #1
Do While EOF(1) = False
Line Input #1, Ligne
result=result+ligne
Loop
Close
litFichierText=result
End Function
Il ne faut pas que tu mette result="C:\03.txt". Le résultat va être enregistré dans la chaine de caractère result. Si tu veux l'enregistrer dans un fichier texte, il faut écrire encore une macro.
De plus, j'ai fait une erreur à la ligne du Open (il faut enlever le +"01.txt" et le spécifier lors de l'appel de la fonction
Avec ce programme tu devrais voir apparaitre dans la cellule (1,1) de ta feuille active la concaténation de tes deux fichiers. Veux tu écrire ce résultat dans un 3ème fichier texte ?
Marsh Posté le 18-03-2005 à 11:31:46
je ne trouve aucune aide sur ta fonction
sub ppale() ? Qu'est ce que c'est concretement ?
Marsh Posté le 18-03-2005 à 11:46:47
C'est normale que tu ne trouve aucune aide dessus car ce n'est pas une fonction de base de visual basic. C'est une fonction personnalisée.On peut auusi l'appeler genFichierTexte. A part ça, je viens de m'apercevoir que tu ne travaille pas sous vba mais sous vb. Pour exécuter genFichierTexte, tu dois l'appeler depuis une autre méthode (la méthode main par exemple)
sub genFichierTexte()
dim chaine1 as string, chaine2 as string,result as string
chaine1=litFichierText("C:\01.txt" )
chaine2=litFichierText("C:\02.txt" )
ecritFichier("C:\03.txt",chaine1+chaine2)
end sub
function litFichierText(chemin as string) as string
dim result as string
result=""
Open chemin For Input As #1
Do While EOF(1) = False
Line Input #1, Ligne
result=result+ligne
Loop
Close
litFichierText=result
End Function
Public sub ecritFichier(nomFichier As String, contenu As String)
Open nomFichier For Output As #1
Print #1, contenu
Close
End sub
Marsh Posté le 18-03-2005 à 12:44:21
Le VBS ne supporte pas les Dim .... As ....
Il faut mettre Dim .... et ca passe.
Marsh Posté le 18-03-2005 à 13:54:15
Bcp d'erreur dans le VBS.
Là je l'ai modifié de la sorte mais je bloque sur ligne 10 carctère 16.
Et je ne comprend pas la ligne avec LINE qui n'est déclaré nul part ?
Public sub main()
dim chaine1 , chaine2 ,result : string
chaine1=litFichierText("C:\01.txt" )
chaine2=litFichierText("C:\02.txt" )
ecritFichier "C:\03.txt",chaine1 & chaine2
end sub
function litFichierText(chemin)
dim result :string
result=""
Open chemin For Input as #1
Do While EOF(1) = False
Line Input #1, Ligne
result=result&ligne
Loop
Close
litFichierText=result
End Function
Public sub ecritFichier(nomFichier String, contenu String)
Open nomFichier For Output As #1
Print #1, contenu
Close
End sub
Marsh Posté le 18-03-2005 à 20:23:10
Citation : dim chaine1 , chaine2 ,result : string |
Citation : dim result :string |
Je pense qu'il faut enlever les ": string"
Marsh Posté le 18-03-2005 à 21:47:42
possible mais je doute (je viens de relire), il ne comprend pas 'Input'.
Esaie cela
Code :
|
A essayer.
Marsh Posté le 21-03-2005 à 10:27:55
Knakes !!!!!!!!
1000 merci !!!!
Tu m'as donné une piste, finalement j'ai réussi :
Même sur VBFRANCE, il n'ont pas réussi à m'aider.
Set Fso = CreateObject("Scripting.FileSystemObject" )
Set Ftxt1 = Fso.OpenTextFile("C:\01.txt", 1)
Set Ftxt2 = Fso.OpenTextFile("C:\02.txt", 1)
Set Ftxt3 = Fso.CreateTextFile("c:\03.txt" )
Txt1 = Ftxt1.ReadAll
Txt2 = Ftxt2.ReadAll
With Ftxt3
.writeline Txt1 & txt2
end With
Marsh Posté le 17-03-2005 à 18:26:31
Hello,
Je suis vraiment un débutant dans le monde du VBS.
Le Batch ne me permets plus de répondre à mes besoins
Voulà ma question; j'ai deux fichiers 01.txt et 02.txt
Dans chaque fichier, j'ai qu'une ligne de caractères:
01.txt : SET CAISSE=
02.txt : 02
J'aimerai simplement concaténer ces deux lignes pour qu'elles fassent :
SET CAISSE=02
Est ce que vous auriez une idée ?
Merci
Message édité par Tibet-Libre le 21-03-2005 à 10:28:46
---------------
GaazzzzZZZZZZZZ