Open VBA et TextFieldParser .NET

Résolu
Signaler
Messages postés
6
Date d'inscription
mardi 25 juillet 2006
Statut
Membre
Dernière intervention
15 novembre 2014
-
Messages postés
3172
Date d'inscription
dimanche 15 février 2004
Statut
Membre
Dernière intervention
9 avril 2017
-
Bonsoir,
Je découvre - avec une certaine inquiétude - VB2005....

J'utilise du code VBA dans VB6 pour avoir une macro compilée donc non modifiable et non piratable... tout va bien, il n'y a pas de retouche à faire et le code fonctionne avec Office 2003 et versions antérieures sans problème.
Mais, quand je veux reprendre mon code pour quelque chose d'aussi trivial que " Open nom-de-fichier for input as #n " plus rien ne passe et il semble falloir transformer un simple  :

Dim a as string
Open "C:\testfile.txt"
for input as #1
do while not EOF(1)
  input #1,a
  msgbox (a)
loop
Close 1

en code du style :
Using MyReader AsNew Microsoft.VisualBasic.FileIO.TextFieldParser("C:\testfile.txt")
MyReader.TextFieldType = FileIO.FieldType.Delimited
MyReader.SetDelimiters(",")
Dim currentRow AsString()
WhileNot MyReader.EndOfData
Try
currentRow = MyReader.ReadFields()
Dim currentField AsString
ForEach currentField In currentRow
MsgBox(currentField)
Next
EndTry
EndWhile
End Using

Pourquoi faire simple quand on peut faire compliqué... et bien sûr Bilou ne propose rien pour "transmuter" le code !
Le machin .NET bloque avec 100% de ressource processeur occupée quand on essaye de "Mettre à niveau"...

Si vous avez une idée... Merci d'avance; en attendant je désinstalle tout le fourbi .NET et reviens à VB6 !
Cordialement à tous.
Fred

9 réponses

Messages postés
6786
Date d'inscription
vendredi 16 décembre 2005
Statut
Membre
Dernière intervention
21 décembre 2011
18
Salut Kenji,

je vais bientôt vous rejoindre, j'ai acheter le bouquin Visual Basic 2005
(1300 pages, arf, j'ai de quoi faire...)

Mais de ce que j'ai vu, je préfèrerai certainement coder en VB6 !

++
Messages postés
6786
Date d'inscription
vendredi 16 décembre 2005
Statut
Membre
Dernière intervention
21 décembre 2011
18
Salut, en .net, ça donne ça :

   
Public
Sub
EcrireFichier(ByVal CheminFichier As
String
, ByVal Texte As
String
)
       
Dim
FreeF As Integer
        FreeF =
FreeFile
() <samp>'Possibilité de mettre 1</samp>
        Texte = Replace(Texte, vbLf, vbCrLf)
        FileOpen(FreeF, CheminFichier, OpenMode.Output)
       
Print
(FreeF, Texte)
        FileClose(FreeF)
   
End
Function


@++

   Mortalino
Le mystérieux chevalier, "Provençal, le Gaulois"
Messages postés
6
Date d'inscription
mardi 25 juillet 2006
Statut
Membre
Dernière intervention
15 novembre 2014

Bonsoir,
Je serai une nana je te ferai   !!!
Merci donc... mais pourquoi tant de chemins pour arriver à Rome...
Cordialement
Frédéric
Messages postés
3172
Date d'inscription
dimanche 15 février 2004
Statut
Membre
Dernière intervention
9 avril 2017
35
Salut,

En utilisant le Framwork ca donne :



Dim
a
As

String

Dim
Sr
As

New
System.IO.StreamReader(
"C:\testfile.txt"
)

While

Not
Sr.EndOfStream

  a = Sr.ReadLine()

  System.Windows.Forms.MessageBox.Show(a)

End

While

Sr.Close()

Sr.Dispose()

Sr =
Nothing





Kenji



Il était une fois, un pauvre petit règlement que personne ne lisait. Il est tout sympa mais il est triste, aidez-le, lisez-le, ca lui ferait plaisir ainsi qu'a n
Messages postés
3172
Date d'inscription
dimanche 15 février 2004
Statut
Membre
Dernière intervention
9 avril 2017
35
Fait gaffe au .net.
Pour moi, je l'abandonne. (Je continue d'aider mais je ne code plus de vrais programmes)
J'ai appris le vb.net et le C#, mais je m'aperçois que je ne vais pas vers le droit chemin. Le .net c'est bien que si on veut faire du dev pour Windows (surtout pour vista avec le WinFx).
J'ai donc décidé de migré (dés que j'aurais fini mon travail en cours) vers le java qui est un langage plus portable. Et après vers le c++.

Au final, pour ce qui est du vb, moi aussi je préfère le vb6.


<?xml:namespace prefix o ns "urn:schemas-microsoft-com:office:office" /??>









Ce n'est que mon avis. Après a toi de voir.
En tout cas bonne lecture et bonne prog.
Perso, j'ai eu un peu de mal au début pour le passage en .net, mais une fois lancer, ca va vite.

Kenji











Il était une fois, un pauvre petit règlement que personne ne lisait. Il est tout sympa mais il est triste, aidez-le, lisez-le, ca lui ferait plaisir ainsi qu'a n
Messages postés
6786
Date d'inscription
vendredi 16 décembre 2005
Statut
Membre
Dernière intervention
21 décembre 2011
18
Ok je te remercie !

T'es pas le seul à me conseiller java.
Une fois bien habitué à VB6 et mon bouquin en .net lu, je vais essayer de m'y mettre (mais chaque chose en son temps... lol)

Merci Kenji ;)

++
Messages postés
6
Date d'inscription
mardi 25 juillet 2006
Statut
Membre
Dernière intervention
15 novembre 2014

Merci à vous deux qui confortez mon impression première.
Vive donc VB6 pour les applications VBA compilées.
Vive SUN pour avoir inventé Java.

Cordialement
Frédéric
Messages postés
6
Date d'inscription
mardi 25 juillet 2006
Statut
Membre
Dernière intervention
15 novembre 2014

Merci à vous deux qui confortez mon impression première.
Vive donc VB6 pour les applications VBA compilées.
Vive SUN pour avoir inventé Java.

Cordialement
Frédéric
Messages postés
3172
Date d'inscription
dimanche 15 février 2004
Statut
Membre
Dernière intervention
9 avril 2017
35
Bah, le .net pour moi il a aussi des avantages
Par exemple, quand j'ai besoins un truc quelconque qui prends du temps à faire la main alors qu'un petit prog peut faire ca en quelques secondes. Alors hop, quelques lignes de vb.net avec les fonctions toutes faites du framework. Prog vite fait mal fait en quelques minutes mais qui accompli parfaitement sa tache en quelques secondes. Ca m'évite ainsi de potasser des heurs sur le truc.



Kenji



Il était une fois, un pauvre petit règlement que personne ne lisait. Il est tout sympa mais il est triste, aidez-le, lisez-le, ca lui ferait plaisir ainsi qu'a n