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

  FORUM HardWare.fr
  Programmation
  VB/VBA/VBS

  [Résolu ] - VBS - Comment concaténer

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

[Résolu ] - VBS - Comment concaténer

n°1016445
Tibet-Libr​e
FREE TIBET
Posté le 17-03-2005 à 18:26:31  profilanswer
 

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
mood
Publicité
Posté le 17-03-2005 à 18:26:31  profilanswer
 

n°1016906
RabbitJaco​b
Posté le 18-03-2005 à 09:40:45  profilanswer
 

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.

n°1016962
Tibet-Libr​e
FREE TIBET
Posté le 18-03-2005 à 10:25:32  profilanswer
 

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 ?


---------------
GaazzzzZZZZZZZZ
n°1017088
RabbitJaco​b
Posté le 18-03-2005 à 11:16:33  profilanswer
 

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 ?

n°1017131
Tibet-Libr​e
FREE TIBET
Posté le 18-03-2005 à 11:31:46  profilanswer
 

je ne trouve aucune aide sur ta fonction  
sub ppale() ? Qu'est ce que c'est concretement ?


---------------
GaazzzzZZZZZZZZ
n°1017175
RabbitJaco​b
Posté le 18-03-2005 à 11:46:47  profilanswer
 

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

n°1017262
knakes
Posté le 18-03-2005 à 12:44:21  profilanswer
 

Le VBS ne supporte pas les Dim .... As ....
Il faut mettre Dim .... et ca passe.

n°1017319
Tibet-Libr​e
FREE TIBET
Posté le 18-03-2005 à 13:54:15  profilanswer
 

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


---------------
GaazzzzZZZZZZZZ
n°1017778
knakes
Posté le 18-03-2005 à 17:20:59  profilanswer
 

Line input #1, lire par ligne le fichier ouvert 1.

n°1017944
fr48545
Posté le 18-03-2005 à 20:23:10  profilanswer
 

Citation :

dim chaine1 , chaine2 ,result : string


Citation :

dim result :string


 
Je pense qu'il faut enlever les ": string"

mood
Publicité
Posté le 18-03-2005 à 20:23:10  profilanswer
 

n°1018023
knakes
Posté le 18-03-2005 à 21:47:42  profilanswer
 

possible mais je doute (je viens de relire), il ne comprend pas  'Input'.
Esaie cela
 

Code :
  1. Set Fso = CreateObject("Scripting.FileSystemObject" )
  2. Set Ftxt1 = Fso.OpenTextFile("C:\01.txt", 1)
  3. Set Ftxt2 = Fso.OpenTextFile("C:\02.txt", 1)
  4. Txt1 = Ftxt1.ReadAll
  5. Txt2 = Ftxt2.ReadAll


 
A essayer.


Message édité par knakes le 18-03-2005 à 21:48:04
n°1019557
Tibet-Libr​e
FREE TIBET
Posté le 21-03-2005 à 10:27:55  profilanswer
 

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


---------------
GaazzzzZZZZZZZZ
n°1019953
knakes
Posté le 21-03-2005 à 17:20:42  profilanswer
 

De rien. j'en suis ravi.


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

  [Résolu ] - VBS - Comment concaténer

 

Sujets relatifs
[Résolu][ASP.NET][C#] Rajouter une couche apres le DataBind[Access][Résolu] Impossible de modifier des données
[Access] [résolu] Affichage de données[VBS] Passage de paramètres dans une procédure
[JAVA] [Résolu] Afficher une page html avec CSS dans un JEditorPane[PERL] Petite question sur substitution....[RESOLU]
[résolu][applet] probleme d'affichage[RESOLU] [CSS] bug IE : texte invisible et décalage bizarre
[RESOLU] pb: JSP/JavaBeanSéparer une chaine de caractère [Résolu]
Plus de sujets relatifs à : [Résolu ] - VBS - Comment concaténer


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