Page 1 sur 1
[..] Importé contenue d'un fichier vers un autre
Posté : dim. 12 août 2012 04:37
par yasin27
Bonjour je m'appelle Yassin,
Alors voila je voudrais importé le contenue d'un fichier texte vers un autre mais je n'y arrive pas le fichier cible reste vide (je suis débutant) alors je sait qu'il y as beaucoup d'erreur mais autoit ne me les affiches pas c'est pour ça que je m'en remet a vous alors voici mon code
► Afficher le texte
Code : Tout sélectionner
#cs ----------------------------------------------------------------------------
AutoIt Version: 3.3.8.1
Author: myName
Script Function:
Template AutoIt script.
#ce ----------------------------------------------------------------------------
Func _main()
Local $file = "source.txt"
Local $file2 = "cible.txt"
Local $size = FileGetSize ("cible.txt")
Local $0 = 0
If $file or $file2 = -1 Then
MsgBox(0, "Erreur", "Fichier oxo.txt manquant.")
Exit
EndIf
While 1
$fl = FileRead ($file)
FileWrite($file2,"$file")
WEnd
if $size = $0 Then
MsgBox(0,"Attention", "Fichier cible vide.")
EndIf
EndFunc
Merci d'avance
Re: Importé contenue d'un fichier vers un autre
Posté : dim. 12 août 2012 07:03
par matwachich
Salut!
Déjà, n'oublie jamais les règles de présentation des messages, si un modo (ou pire!!! Tlem) passe par là, ton message finira à la poubelle!!!
Après, pour ton script:
► Afficher le texte
Code : Tout sélectionner
$file_source = "source.txt"
$file_cible = "cible.txt"
; LA vraie solution qui ne casse pas la tête
FileCopy($file_source, $file_cible)
; ---
; La solution selon ce que tu essaies de faire
$contenu = FileRead($file_source)
FileWrite($file_cible, $contenu)
PS: Ah oui au fait, tu déclare une fonction _main, mais tu ne l'appelle (exécute) jamais! Comment veux-tu qu'il se passe quelque chose???
PS2: Un petit tour par
le tutoriel ne te ferait pas de mal!
Re: Importé contenue d'un fichier vers un autre
Posté : dim. 12 août 2012 11:26
par Tlem
matwachich a écrit :; LA vraie solution qui ne casse pas la tête
Heuu oui, mais selon le code de Yassin, il manque des petites choses ...
En l'occurence, le
FileCopy devrait être utilisé avec le paramètre flag à 9 (8 + 1).
- flag = 1 pour écraser le fichier cible si il existe déjà
- flag = 8 pour créer la structure des répertoires si elle n'existe pas.
Ensuite il faut tester la valeur de retour pour savoir si l'opération c'est bien déroulée ou non.
Cela nous donne :
Code : Tout sélectionner
$file_source = "source.txt"
$file_cible = "cible.txt"
If Not FileCopy($file_source, $file_cible, 9) Then
MsgBox(16, "Attention", "Erreur lors de la copie du fichier.")
EndIf
Maintenant, en lisant ceci :
yasin27 a écrit :importé le contenue d'un fichier texte vers un autre
je penserais plutôt à un code qui récupère le texte d'un fichier et qui
l'ajoute à un autre fichier.

► Afficher le texte
Code : Tout sélectionner
Local $File1 = "source.txt"
Local $File2 = "cible.txt"
; Teste la présence des deux fichiers. Si problème => Erreur
If Not FileExists($File1) Or Not FileExists($File2) Then
MsgBox(16, "Erreur", "Fichier oxo.txt manquant.")
Exit
EndIf
; Lit le contenu du fichier source
Local $sFile1 = FileRead($File1)
; Ouvre le fichier de destination en écriture (ajout du texte à la fin du fichier)
Local $hFile2 = FileOpen($File2, 1)
; Teste si l'ouverture c'est bien déroulée. Si problème => Erreur
If $hFile2 = -1 Then
MsgBox(16, "Erreur", "Impossible d'ouvrir le fichier de destination.")
Exit
EndIf
; Ecrit le texte dans le fichier de destination. Si problème => Erreur
If Not FileWrite($hFile2, $sFile1) Then
MsgBox(16, "Erreur", "Erreur d'écriture dans le fichier de destination.")
Exit
EndIf
; Ferme le fichier de destination
FileClose($sFile2)
; Teste la taille du fichier de destination. Si problème => Erreur
If Not FileGetSize($File2) > 0 Then
MsgBox(16, "Attention", "Fichier cible vide.")
EndIf