Urgent (pas des conneries!!) : Lire ligne par ligne

Résolu
KungFuChaos Messages postés 25 Date d'inscription mercredi 26 décembre 2007 Statut Membre Dernière intervention 2 juin 2011 - 27 févr. 2009 à 11:03
Renfield Messages postés 17287 Date d'inscription mercredi 2 janvier 2002 Statut Modérateur Dernière intervention 27 septembre 2021 - 27 févr. 2009 à 14:39
Bonjour!

Voilà! J'ai un fichier .txt que je voudrais lire via une macro, et qu'il lise ligne par ligne les lignes du fichier pour enregistrer des données.

Merci de me répondre au plus vite si vous savez.

PS : le fichier
PS2 : les mots soulignés sont à enregistrer dans des variables

Shop:               Flow                      
Job:                J001
  Comment:            assemblage total
  RGB:                89;187;139
  Release:            0
  Due:                0
  Weight:             0
  Oper:               W001;3;A
  Oper:               W002;2;A
  Oper:               W003;5;A
  Oper:               W004;4;A
  Oper:               W005;1;A

Job:                J002
  Comment:            assemblage total
  RGB:                180;34;221
  Release:            0
  Due:                0
  Weight:             0
  Oper:               W001;2;A
  Oper:               W002;5;A
  Oper:               W003;1;A
  Oper:               W004;3;A
  Oper:               W005;4;A

Job:                J003
  Comment:            assemblage total
  RGB:                207;189;9
  Release:            0
  Due:                0
  Weight:             0
  Oper:               W001;3;A
  Oper:               W002;4;A
  Oper:               W003;2;A
  Oper:               W004;1;A
  Oper:               W005;5;A

...

4 réponses

Renfield Messages postés 17287 Date d'inscription mercredi 2 janvier 2002 Statut Modérateur Dernière intervention 27 septembre 2021 74
27 févr. 2009 à 14:39
Option Explicit

Private Type Job
Name As String
Comment As String
RGB As OLE_COLOR
Release As Long
Due As Long
Weight As Long
Oper() As String
OperCount As Long
End Type

Private Type Shop
Name As String
Jobs() As Job
JobCount As Long
End Type

Private Sub Form_Load()
Dim xsLines() As String
Dim sLine As String
Dim i As Long
Dim sName As String
Dim sValue As String
Dim nPos As Long
Dim xtShops() As Shop
Dim nShopCount As Long
Dim xsParts() As String
'# Chaque ligne sera un élément du tableau xsLines
Open "c:\a.txt" For Input As #1
xsLines = Split(Input(LOF(1), #1), vbNewLine)
Close #1

For i = 0 To UBound(xsLines)
sLine = Trim$(xsLines(i))
If LenB(sLine) Then
'# On va séparer chaque ligne en deux champs. sName et sValue
nPos = InStr(sLine, ":")
If nPos Then
sName = Trim$(Left$(sLine, nPos - 1))
sValue = Trim$(Mid$(sLine, nPos + 1))

If sName = "Shop" Then
'# On ajoute une case au tableau de Shops
ReDim Preserve xtShops(nShopCount)
nShopCount = nShopCount + 1
xtShops(nShopCount - 1).Name = sValue
Else
'# Les champs lus vont être stockés dans le dernier magasin du tableau
With xtShops(nShopCount - 1)
Select Case sName
Case "Job"
'# On agrandit notre tableau
ReDim Preserve .Jobs(.JobCount)
.JobCount = .JobCount + 1
.Jobs(.JobCount - 1).Name = sValue
Case "Comment"
.Jobs(.JobCount - 1).Comment = sValue
Case "RGB"
'# Ici, je convertit en RGB... a voir si ca convient
xsParts = Split(sValue, ";")
If UBound(xsParts) = 2 Then
.Jobs(.JobCount - 1).RGB = RGB(Val(xsParts(0)), Val(xsParts(1)), Val(xsParts(2)))
End If
Case "Release"
.Jobs(.JobCount - 1).Release = sValue
Case "Due"
.Jobs(.JobCount - 1).Due = sValue
Case "Weight"
.Jobs(.JobCount - 1).Weight = sValue
Case "Oper"
'# On stockes le tout dans un tableau dynamique
With .Jobs(.JobCount - 1)
'# On ajoute un case ...
ReDim Preserve .Oper(.OperCount)
.OperCount = .OperCount + 1
.Oper(.OperCount - 1) = sValue
End With
End Select
End With
End If
End If
End If
Next i

'# Ici, a toi de jouer a manipuler le tableau xtShops. Le fichier a été lu et analysé
Stop
End Sub
3
Renfield Messages postés 17287 Date d'inscription mercredi 2 janvier 2002 Statut Modérateur Dernière intervention 27 septembre 2021 74
27 févr. 2009 à 11:13
tu parles de marco.

ca mer fait penser à du VBA et non du .NET, theme sous lequel ta question est posée.


quel est ton environnement de travail, au final ?
0
KungFuChaos Messages postés 25 Date d'inscription mercredi 26 décembre 2007 Statut Membre Dernière intervention 2 juin 2011
27 févr. 2009 à 11:26
Je dois faire du vba sur du bloc note, le compilé et l'atribué à un logiciel.
0
Renfield Messages postés 17287 Date d'inscription mercredi 2 janvier 2002 Statut Modérateur Dernière intervention 27 septembre 2021 74
27 févr. 2009 à 14:14
compiler du VBA ?
le taper sous bloc notes ?

euh...

j'ai raté quelque chose ?
0
Rejoignez-nous