Nouveaux posts

 



Parcourir ce sujet:   1 Utilisateur(s) anonymes


 Bas   Précédent   Suivant Enregistrer votre réponse Ecrire un nouveau message



ahmani24
MsflexGrid & fichier txt
Newbie
Inscrit:
26/09/2006 10:46
Post(s): 1
Hors Ligne
Bojour a tous,
j ai un fichier texte (txt); qui contient des enregistrement de format :

a1
b1
c1

a2
b2
c2

a3
b3
c3

...
et jai developper un programme qui affiche ce ficheir dans la Msflexgrid sous format :
cols1 cols2 cols3
a1 b1 c1
a2 b2 c2
a3 b3 c3

le voici

Dim ff As Integer
Dim i As Integer
Dim j As Integer

i = MSFlex.Rows
MSFlex.Cols = 4

ff = FreeFile
Open TonFichier For Input As #ff

Do While Not EOF(ff)
MSFlex.Rows = i + 1
For j = 0 To 3
If Not EOF(ff) Then
Input #ff, a$
MSFlex.TextMatrix(i, j) = a$
Else
Exit Do
End If
Next j
i = i + 1
Loop

Close #ff

est ce qu il ya qq qui peux me dire comment je peux modifier ou supprimer un enregistrement c vraiment tres urgent.
Merci d'avance

Contribution le : 26/09/2006 10:51
Créer un fichier PDF de la contribution Imprimer


Alain
Re: MsflexGrid & fichier txt
Modérateur principal
Inscrit:
21/08/2005 19:40
De France
Post(s): 41
Hors Ligne
Dans le meme esprit et dans ce ce tu veux obtenir
je peux te suggérer une autre façon
de lire /ecrire/supprimer des données dans un fichier :
lecture / ecriture dans fichier en accès aléatoire.

Je me sert d'un controle ListView et
dans cet exemple je créé et gère une liste de fichiers mp3

1° définir le type dans module .bas

Type autre_x 'enregistrement liste
objet_chemin As String * 200
objet_info As String * 100
objet_genre As String * 100
objet_Niveau_son As Integer
objet_enrg As String * 8
End Type
'vvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvv

2° ouvrir le fichier et ajouter du contenu dans ListView1

Dim MyH2 As autre_x,RecordNumber
Dim li As ListItem
Dim si As ListSubItem
Dim sa As ListSubItem
Dim sb As ListSubItem
Dim sc As ListSubItem

RL = Chr$(13) 'retour ligne
RLS = Chr$(10) & Chr$(13) & Chr$(10) & Chr$(13) 'retour + saut de ligne

f = FreeFile


If ListView1.ListItems.Count > 0 Then MyNB = 1

On Error GoTo fin1

With CommonDialog1

.DialogTitle = "Ouvrir un fichier liste"
.InitDir = Chemin_programme
.filename = "*.rfm"
.Filter = "fichier (*.rfm)|*.rfm"
.ShowOpen
End With

fname = CommonDialog1.filename '


MousePointer = vbArrowHourglass


If fname = "" Then fname = "liste.rfm"

' charge les titre ListView1

With ListView1
.ColumnHeaders.Clear
.ColumnHeaders.Add , , "Chemin complet du fichier ( liste : " & fname_suprim & " )", 6700
.ColumnHeaders.Add , , "Info / dossier", 2500
.ColumnHeaders.Add , , "Genre", 1300
.ColumnHeaders.Add , , "Volume", 500
.ColumnHeaders.Add , , "Temps piste", 900
End With



Open fname For Random As #f Len = Len(MyH2)

maxnb = LOF(f) \ Len(MyH2) 'Nb d'enregistrement

For RecordNumber = 1 To maxnb

Seek #f, RecordNumber ' Définit la position.
Get #f, , MyH2 ' Lit les enregistrements et charge dans le controle.

Set li = ListView1.ListItems.Add(, , Trim(MyH2.objet_chemin)) ', intIcon)
Set si = li.ListSubItems.Add(Text:=Trim(MyH2.objet_info))
Set sa = li.ListSubItems.Add(Text:=Trim(MyH2.objet_genre))
Set sb = li.ListSubItems.Add(Text:=Trim(MyH2.objet_Niveau_son))
Set sc = li.ListSubItems.Add(Text:=Trim(MyH2.objet_enrg))

Next RecordNumber

Close #f ' Ferme le fichier.

Set li = Nothing
Set si = Nothing
Set sa = Nothing
Set sb = Nothing
Set sc = Nothing 'decharge


MousePointer = vbDefault


Exit Sub
fin1:
Set li = Nothing
Set si = Nothing
Set sa = Nothing
Set sb = Nothing
Set sc = Nothing


MousePointer = vbDefault

'bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb
3° sauvegarde le fichier

Dim MyH2 As autre_x

Dim li As ListItem
Dim si As ListSubItem
Dim sa As ListSubItem
Dim sb As ListSubItem
Dim sc As ListSubItem
' Définit le message.


RL = Chr$(13) 'retour ligne
RLS = Chr$(10) & Chr$(13) & Chr$(10) & Chr$(13) 'retour + saut de ligne
f = FreeFile


On Error Resume Next

If ListView1.ListItems.Count = -1 Then MsgBox "Rien a sauvegarder !", vbExclamation: Exit Sub

ChDrive App.Path
ChDir App.Path

fname = "liste.rfm"'nom par défaut du fichier


Kill fname 'je l'efface afin d'avoir la possibilité de le recree
'ListView1.ListItems(1).Selected = True 'demarre 1° index
intx = 1 'ListView1.SelectedItem.Index 'défini l'index

Open fname For Random As #f Len = Len(MyH2)

maxnb = ListView1.ListItems.Count 'Nb d'enregistrement

For RecordNumber = 1 To maxnb 'charge dans le controle ListItems les données
ListView1.ListItems(intx).Selected = True 'sélectionne le premier index du controle
Set li = ListView1.ListItems(intx) 'crée objet principal 1° colonne
Set si = li.ListSubItems(1) 'crée objet secondaire 2° colonne
If si = "" Then si = "Info_fichier"
Set sa = li.ListSubItems(2) 'crée objet secondaire 3° colonne
If sa = "" Then sa = "divers"
Set sb = li.ListSubItems(3) 'crée objet secondaire 4° colonne
If sb = "" Then sb = "0"
Set sc = li.ListSubItems(4) 'crée objet secondaire 5° colonne
If sc = "" Then sc = RecordNumber 'numéro enregistrement


MyH2.objet_chemin = li
MyH2.objet_info = si
MyH2.objet_genre = sa
MyH2.objet_Niveau_son = sb
MyH2.objet_enrg = sc

' Écrit l'enregistrement dans le fichier.
Put #f, RecordNumber, MyH2 '******************Ecrie*******************
intx = intx + 1 'ajoute un enrg

Next RecordNumber

Close #f ' Ferme le fichier

Set li = Nothing
Set si = Nothing
Set sa = Nothing
Set sb = Nothing
Set sc = Nothing 'decharge

'fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff

' pour modifier un enregistrement je vais le lire

Dim MyURL As autre_x
On Error GoTo fin1

Open fname_suprim For Random As #f Len = Len(MyURL)

RecordNumber = Var0 'Var0 = (ListView1.SelectedItem.Index)

Seek #f, RecordNumber ' Définit la position.
Get #f, , MyURL ' Lit l'enregistrement.


Var1 = Trim(MyURL.objet_chemin)
Var2 = LCase(Trim(MyURL.objet_info))
Var3 = Trim(MyURL.objet_genre)
var4 = MyURL.objet_Niveau_son
VarX = MyURL.objet_enrg
Close #f ' Ferme le fichier.
fin:
'rrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrr

'apres l'avoir lu le modifier j'utilise InputBox mais bon....
dim etc...
'--------------
Title = " Modification de l'info " ' Définit le titre.
Message = "En cours :" & Var1 & " Enreg. (" & Var0 & ")"
Message = Message & RLS & "Info : " & Var2
Message = Message & RL & "Genre : " & Var3
Message = Message & RL & "Volume : " & var4
Default = Var2
A_info = InputBox(Message, Title, Default)
If A_info = "" Then A_info = "Info"


Title = " Modification du genre " ' Définit le titre.
Message = "En cours :" & Var1 & " Enreg. (" & Var0 & ")"
Message = Message & RLS & "Info : " & A_info
Message = Message & RL & "Genre : " & Var3
Message = Message & RL & "Volume : " & var4
Default = Var3
A_genre = InputBox(Message, Title, Default)
If A_genre = "" Then A_genre = "Genre"

Title = " Modification du volume " ' Définit le titre.
Message = "En cours :" & Var1 & " Enreg. (" & Var0 & ")"
Message = Message & RLS & "Info : " & A_info
Message = Message & RL & "Genre : " & A_genre
Message = Message & RL & "Volume : " & var4
Default = var4
A_volume = InputBox(Message, Title, Default)
If A_volume > 0 Then A_volume = 0


' Ouvre le fichier en accès aléatoire.
Open fname For Random As #f Len = Len(MyURL)

RecordNumber = Var0 'définir l engeristrement qui va etre modifier

' Écrit l'enregistrement dans le fichier.

MyURL.objet_chemin = Var1
MyURL.objet_info = A_info
MyURL.objet_genre = A_genre
MyURL.objet_Niveau_son = A_volume
MyURL.objet_enrg = VarX
Put #f, RecordNumber, MyURL 'ecrie dans le fichier

Close #f ' Ferme le fichier.
'rrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrr

'supprimer un enregistrement de la liste

ListView1.ListItems.Remove (var0)' Var0 = (ListView1.SelectedItem.Index)
'puis
goto 3° sauvegarde le fichier

'eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee
'eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee

bonne continuation

Contribution le : 26/09/2006 22:38

Edité par kjame sur 27/9/2006 16:07:16
Edité par Toplogteam sur 27/9/2006 17:02:00
Créer un fichier PDF de la contribution Imprimer


kjame
Re: MsflexGrid & fichier txt
Webmestre
Inscrit:
20/08/2005 18:35
De Bordeaux
Post(s): 1762
Hors Ligne
Bonsoir ahmani24,

Si vous avez résolu votre probleme, vous est-il possible d'éditer le message et d'apposer la mention [Résolu] dans le suffixe du sujet ?

Cordialement.

Contribution le : 29/09/2006 22:39
Créer un fichier PDF de la contribution Imprimer



 Haut   Précédent   Suivant

Enregistrer votre réponse Ecrire un nouveau message


Vous pouvez débuter de nouveaux sujets.
Vous pouvez voir les sujets.
Vous pouvez répondre aux contributions.
Vous ne pouvez pas éditer vos contributions.
Vous ne pouvez pas effacez vos contributions.
Vous ne pouvez pas ajouter de nouveaux sondages.
Vous pouvez voter en sondage.
Vous ne pouvez pas attacher des fichiers à vos contributions.
Vous pouvez poster sans approbation.

[Recherche avancée]