jrivet
Messages postés7393Date d'inscriptionmercredi 23 avril 2003StatutMembreDernière intervention 6 avril 201260 17 juil. 2007 à 10:43
Re,
Ou la limite je trouve le "donne moi le code SVP"
PETIT RAPPEL
<ol><li>On fait une recherche sur le site avant de poster une question.</li><li>On est poli : « bonjour » et « merci » sont des mots appréciés.</li><li>On utilise un langage correct : pas de langage SMS, et on fait attention à l'orthographe.</li><li>On demande une explication sur un sujet précis, on ne l'exige pas.</li><li>On ne pose qu'une question par topic.</li><li>On pose une question aussi précise que possible.</li><li>On précise les détails du problème : contexte, langage, message d'erreur ...</li><li>On pense à donner le bout de code qui pose problème, et préciser le langage utilisé.</li><li>On ne demande pas un programme tout fait, on ne demande que de l'aide sur un problème
concret.
</li><li>On pense à laisser un petit message lorsqu'un problème est résolu et à cliquer
sur le bouton « réponse acceptée ».</li></ol>
cs_Exploreur
Messages postés4822Date d'inscriptionlundi 11 novembre 2002StatutMembreDernière intervention15 novembre 201614 17 juil. 2007 à 13:03
Salut,
Ne le prend pas mal, ce sont là juste des explication sur le fonctionnement du forum...Lis le réglement et tu va vite comprendre pourquoi tu as ces réponses...
cs_zaatout
Messages postés156Date d'inscriptiondimanche 19 novembre 2006StatutMembreDernière intervention20 novembre 2013 22 juil. 2007 à 17:06
Bonjour je m'excuse j'ete absent
pour plus dinformation je travaille sur le systeme unix et je programme sur informix bref
j'ai des donnees sur une table infomix pour les extraire je fais
dbunload to cons.txt select * from mouvement , le probleme le dbunload ne respect pas la taille des champs donc les donnes sont transfere comme suite
2007|01|102108|61|S|BRIDE|200,02|
2007|01|108101|61|S|ACIDE 28|28,41|
donc mois j'aimerais les avoir dans le formats suivant
champ1 4 caractere
champ2 2 caractere
champ3 10 caractere
champ4 6 caractere
champ5 20 caractere
champ6 11 caractere
donc prendre en consideration les blancs
j'ai trouve ce bout de code en VB6 qui lie et affiche le contenu de cons.txt
donc je voudrai bien ke kelk1 m'aide a modifie les ligne
mille merci
Private Sub ReadAllLines(ByVal sPath As String, ByRef aLines() As String)
Dim Buf As String
On Error Resume Next
Open sPath For Input As #1
Buf = Input(LOF(1), #1)
Close #1
aLines = Split(Buf, vbNewLine)
End Sub
Private Sub Form_Load()
Dim toto As String
Dim aMesLignes() As String
Dim i, j As Long
Dim ligne As String
Me.AutoRedraw = True
Me.Show
ReadAllLines "c:\cons.txt", aMesLignes
Me.Print (1 + UBound(aMesLignes)) & " Enregistrements" & vbNewLine
For i = LBound(aMesLignes) To UBound(aMesLignes)
Me.Print aMesLignes(i)
cs_MPi
Messages postés3877Date d'inscriptionmardi 19 mars 2002StatutMembreDernière intervention17 août 201822 23 juil. 2007 à 12:03
Tu pourrais peut-être essayer en te créant un Type avec le nombre d'items nécessaire et de longueurs définies selon les besoins.
ex:
Type MyType
Champ1 as String * 4
Champ2 as String * 2
Champ3 as String * 10
Champ4 as String * 6
Champ5 as String * 20
Champ6 as String * 11 ' ou As Double
End Type
Dim MonType as MyType
(MonType pourrait être un tableau de type MyType)
Difficile d'expliquer plus précisément sans voir le fichier ... et sans savoir exactement ce que tu dois faire avec ces données qui semblent devoir être de longueurs fixes.
Donc, un premier Split sur vbcrlf ou vbnewline pour récupérer chaque ligne du fichier.
Et un autre Split sur le séparateur pour récupérer chaque partie de cette ligne.
Et tu affectes chaque item de cette ligne à une partie de "MonType"
MonType.Champ1 = Tablo(0)
..............
cs_zaatout
Messages postés156Date d'inscriptiondimanche 19 novembre 2006StatutMembreDernière intervention20 novembre 2013 23 juil. 2007 à 14:32
Merci pour la Reponse
mais voila si vous pouvez me donner plus de details SVP je n'arrive pas a mettre a jour le fichier cons.txt en respectant la longeur des champs
cs_zaatout
Messages postés156Date d'inscriptiondimanche 19 novembre 2006StatutMembreDernière intervention20 novembre 2013 24 juil. 2007 à 10:53
Bonjour : Voici mon code d'affichage du fichier .txt
Dim aaaa As String * 4
Dim mm As String * 2
Dim cptcae As String * 10
Dim compte As String * 6
Dim libelle As String * 30
Dim montant As String * 11
Option Explicit
Private Sub ReadAllLines(ByVal sPath As String, ByRef aLines() As String)
Dim Buf As String
On Error Resume Next
Open sPath For Input As #1
Buf = Input(LOF(1), #1)
Close #1
aLines = Split(Buf, vbNewLine)
End Sub
Private Sub Form_Load()
Dim toto As String
Dim aMesLignes() As String
Dim i, j As Long
Dim ligne As String
Me.AutoRedraw = True
Me.Show
ReadAllLines "c:\cons.txt", aMesLignes
Me.Print (1 + UBound(aMesLignes)) & " Enregistrements" & vbNewLine
For i = LBound(aMesLignes) To UBound(aMesLignes)
Me.Print aMesLignes(i)
Next i
End Sub
je n'arrive pas a mettre a jour ce fichier .txt en respectant les tailles des champs .Les donnees sont affiche comme ça
2007|01|102102|61|ACIDE|300,25
j'aimerai les avoir comme suite
200701102102 61 ACIDE 300,25
DONC
le 1er champ string*4
le 2eme champ string*2
le 3eme champ string*10
le 4eme champ string*6
le 5eme champ string*30
le 6eme champ string*11
cs_MPi
Messages postés3877Date d'inscriptionmardi 19 mars 2002StatutMembreDernière intervention17 août 201822 25 juil. 2007 à 00:14
Dans to Form_Load, tu appelles une fonction (Sub) qui crée un tableau qui te donne ce genre de ligne
2007|01|102102|61|ACIDE|300,25
Donc, dans ta boucle, tu dois faire un autre Split sur le caractère "pipe" qui semble être ton séparateur et tu récupéreras chaque item de la ligne
For i = LBound(aMesLignes) To UBound(aMesLignes)
' Me.Print aMesLignes(i)
MonAutreTableau = Split(aMesLignes(i), "|") ' mettre le bon séparateur
For j = 0 to UBound(MonAutreTableau)
msgbox(MonAutreTableau(j))
Next j
Next i