IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
logo

FAQ LibreOffice et Apache OpenOfficeConsultez toutes les FAQ

Nombre d'auteurs : 10, nombre de questions : 359, dernière mise à jour : 15 juillet 2017  Ajouter une question

 

Bienvenue sur la FAQ, elle a été réalisée pour répondre aux questions concernant les suites bureautiques Apache OpenOffice (AOO) et LibreOffice (LibO).

Si vous souhaitez participer pour l'améliorer, pour proposer vos contributions ou si vous constatez des erreurs dans cette page, n'hésitez-pas !!! Participez.

SommaireProgrammation OBasicL'interaction avec d'autres applicationsLes fichiers texte (8)
précédent sommaire suivant
 

Si le fichier .txt existe déjà, les anciennes données seront écrasées.
Si le fichier n'existe pas, il sera créé automatiquement.

Code vb : Sélectionner tout
1
2
3
4
5
6
7
8
9
10
Sub EcrireDansFichierTexte_OutPut 
  Dim Fichier As String 
  
  Fichier = "C:\NomFichier.Txt" 
  
  Open Fichier For Output As #1 
    Print #1, "Test 1ere ligne" 
    Print #1, "Test 2eme ligne" 
  Close #1 
End Sub

Mis à jour le 26 août 2013 SilkyRoad

Les données viennent s'inscrire à la suite des lignes existantes.
Si le fichier .txt n'existe pas, il sera créé automatiquement.

Code vb : Sélectionner tout
1
2
3
4
5
6
7
8
9
10
11
Sub EcrireDansFichierTexte_Append 
  Dim Cible As Integer 
  Dim Fichier As String 
  
  Fichier = "C:\NomFichier.Txt" 
  
  Cible = freeFile 
  Open Fichier For Append As #Cible 
    Print #Cible, "Mon texte dans le fichier" 
  Close #Cible 
End Sub

Mis à jour le 26 août 2013 SilkyRoad

La procédure suivante permet de boucler sur toutes les lignes du fichier texte.

Code vb : Sélectionner tout
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
Sub LireFichierTexte_Input 
  Dim Ligne As String 
  Dim Fichier As String 
  
  Fichier = "C:\NomFichier.Txt"   
  
  Open Fichier For Input As #1 
  
    '--- Boucle sur les lignes du fichier 
    Do While Not EOF(1) 
      Line Input #1, Ligne 
      Msgbox Ligne 
    Loop 
  
  Close #1 
End Sub

Mis à jour le 26 août 2013 SilkyRoad

Code vb : Sélectionner tout
  Shell "notepad.exe /P""C:\NomFichier.Txt""", 1

Mis à jour le 3 août 2013 SilkyRoad

La macro supprime les lignes 1, 3 et 10 dans le fichier texte :

Code vb : Sélectionner tout
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
Sub SupprimerQuelquesLignes 
  Dim Fichier As String 
  Dim Collect As New Collection 
  Dim F As Integer, i As Integer 
  Dim Ligne As String 
  
  Fichier = "C:\NomFichier.Txt" 
  
  F = FreeFile 
  'Lecture du fichier : ajoute chaque ligne dans la collection 
  Open Fichier For Input As #F 
    While Not EOF(F) 
      Line Input #F, Ligne 
      Collect.Add Ligne 
    Wend 
  Close #F 
  
  'Suppression des lignes 1, 3 et 10 dans la collection 
  Collect.Remove 10 
  Collect.Remove 3 
  Collect.Remove 1 
  
  'Réécriture du fichier txt sans les données supprimées 
  Open Fichier For Output As #F 
    For i = 1 To Collect.Count 
      Print #F, Collect(i) 
    Next 
  Close #F 
  
  Collect = Nothing 
End Sub

Mis à jour le 26 août 2013 SilkyRoad

Code vb : Sélectionner tout
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
  
Sub SupprimerLignesDoublons 
  Dim Fichier As String 
  Dim Collect As New Collection 
  Dim F As Integer, i As Integer 
  Dim Ligne As String 
  
  Fichier = "C:\NomFichier.Txt" 
  
  F = FreeFile 
  
  On Error Resume Next 
  
  'Lecture du fichier 
  Open Fichier For Input As #F 
    While Not EOF(F) 
      Line Input #F, Ligne 
      'Le 2eme argument, key = Cstr(Ligne), est unique et permet donc de filtrer les doublons 
      'dans la collection. 
      Collect.Add Ligne , Cstr(Ligne) 
    Wend 
  Close #F 
  
  On Error GoTo 0 
  
  'Réécriture du fichier txt sans les doublons 
  Open Fichier For Output As #F 
    For i = 1 To Collect.Count 
      Print #F, Collect(i) 
    Next 
  Close #F 
  
  Collect = Nothing   
End Sub

Mis à jour le 3 août 2013 SilkyRoad

Code vb : Sélectionner tout
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
Sub nombreLignesFichierTexte_V01() 
  Dim strLigne As String 
  Dim nbLignes As Long 
  Dim Fichier As String 
  
  Fichier = "C:\NomFichier.Txt" 
  
  Open Fichier For Input As #1 
    Do While Not EOF(1) 
      Line Input #1, strLigne 
      nbLignes = nbLignes + 1 
    Loop 
  Close #1 
  
  MsgBox "Nombre de lignes : " & nbLignes 
End Sub

Une deuxième possibilité :
Code vb : Sélectionner tout
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
Sub nombreLignesFichierTexte_V02() 
  Dim oObj As Object , Fso As Object , oFile As Object 
  Dim Fichier As String 
  
  Const ForReading = 1 
  Fichier = "C:\NomFichier.Txt" 
  
  oObj = createUnoService("com.sun.star.bridge.OleObjectFactory") 
  Fso = oObj.createInstance("Scripting.FileSystemObject") 
  oFile = Fso.OpenTextFile( Fichier , ForReading ) 
  
  oFile.ReadAll 
  MsgBox "Nombre de lignes : " & oFile.Line 
  oFile.Close 
End Sub

Mis à jour le 26 août 2013 SilkyRoad

Code vb : Sélectionner tout
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
  
Sub RemplacerChaine_Dans_FichierTexte 
  Dim Chaine As String , Cible As String 
  Dim Fichier2 As String , Fichier1 As String 
  Dim Ancien As String , Nouveau As String 
  
  Ancien = "42" 
  Nouveau = "29" 
  
  'Le fichier original 
  Fichier1 = "C:\NomFichier.txt" 
  'Le nouveau fichier qui va être créé 
  Fichier2 = "C:\NomFichierModifié.txt" 
  
  Open Fichier1 For Input As #1 
  Open Fichier2 For Append As #2 
    'Boucle sur toutes les lignes du fichier texte 
    Do While Not EOF(1) 
      Line Input #1, Chaine 
	  'Remplace les caractères dans la chaine	 
      Cible = Join(Split(Chaine , Ancien), Nouveau) 
	  'Ecrit le résultat dans un nouveau fichier texte 
      Print #2, Cible 
    Loop 
  'Fermeture des fichiers 
  Close #1     
  Close #2     
  
  'Suppression Fichier d'origine 
  'Kill Fichier1 
  
  MsgBox "Terminé." 
End Sub

Mis à jour le 3 août 2013 SilkyRoad

Proposer une nouvelle réponse sur la FAQ

Ce n'est pas l'endroit pour poser des questions, allez plutôt sur le forum de la rubrique pour ça


Réponse à la question

Liens sous la question
précédent sommaire suivant
 

Les sources présentées sur cette page sont libres de droits et vous pouvez les utiliser à votre convenance. Par contre, la page de présentation constitue une œuvre intellectuelle protégée par les droits d'auteur. Copyright © 2024 Developpez Developpez LLC. Tous droits réservés Developpez LLC. Aucune reproduction, même partielle, ne peut être faite de ce site et de l'ensemble de son contenu : textes, documents et images sans l'autorisation expresse de Developpez LLC. Sinon vous encourez selon la loi jusqu'à trois ans de prison et jusqu'à 300 000 € de dommages et intérêts.