Data, Read data fonction en vb6

BABUDROME Messages postés 151 Date d'inscription lundi 16 janvier 2006 Statut Membre Dernière intervention 19 avril 2016 - 25 janv. 2010 à 09:57
BABUDROME Messages postés 151 Date d'inscription lundi 16 janvier 2006 Statut Membre Dernière intervention 19 avril 2016 - 27 janv. 2010 à 09:36
Existe-t-il en VB6 une fonction 'Read' pour des 'Data "Ligne de texte"' ?
Ceci existait dans de vieux Basic...

bab

13 réponses

Calade Messages postés 1207 Date d'inscription dimanche 20 avril 2003 Statut Membre Dernière intervention 4 juin 2016 10
25 janv. 2010 à 10:07
Bonjour à toi aussi,

Intéresse-toi au File Scripting Object (FSO), c'est le plus pratique.




Calade
0
cs_Jack Messages postés 14007 Date d'inscription samedi 29 décembre 2001 Statut Modérateur Dernière intervention 28 août 2015 78
25 janv. 2010 à 10:09
Salut
Des 'Data "Ligne de texte"' ? qu'entends-tu par là ?
Dans quoi se trouvent ces textes ? Fichier ? Port série ? Interface clavier ?

Vala
Jack, MVP VB
NB : Je ne répondrai pas aux messages privés

Le savoir est la seule matière qui s'accroit quand on la partage (Socrate)
0
Renfield Messages postés 17287 Date d'inscription mercredi 2 janvier 2002 Statut Modérateur Dernière intervention 27 septembre 2021 71
25 janv. 2010 à 10:14
mauvais conseil, Calade.
File SCRIPTING Projet à reserver pour VBScript

c'est lent, etc.

Badudrome, besoin de précisions pour te répondre (cf message de Jack)


Renfield - Admin CodeS-SourceS - MVP Visual Basic
0
Calade Messages postés 1207 Date d'inscription dimanche 20 avril 2003 Statut Membre Dernière intervention 4 juin 2016 10
25 janv. 2010 à 10:22
Salut Renfield,

Excuse-moi alors avec est-ce que je confonds, j'utilise régulièrement FSO en VB6 et je n'ai pas de problèmes particuliers. Mes petits besoins pour l'instant n'ont pas fait apparaître de problèmes de lenteur, mais sur ce coup là je suis d'accord avec toi.


Calade
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
cs_Jack Messages postés 14007 Date d'inscription samedi 29 décembre 2001 Statut Modérateur Dernière intervention 28 août 2015 78
25 janv. 2010 à 15:52
BABUDROME : Inutile de m'envoyer en privé l'énnoncé de ton problème, mieux vaut mettre le maximum de détails ici, dans le forum afin d'avoir plus de chance de trouver réponse.

Explications :
L'exemple ci-après sera plus explicite, j'espère :

Dans un module séparé :
Sub Load_Data()
Dim a, i, j, n : Jeu.ListData.Clear
1: Read a: Jeu.ListData.AddItem a
If a <> "END" then GoTo 1
ListData.Visible = True
End Sub

Data "SONS:"
Data " Des sons accompagnent ce jeu :"
Data " d'abord en souhaitant la bienvenue et jouant une petite musique... "
Data " Chaque PAS est entendu, de même qu'une rencontre avec un obstacle ."
Data " Des applaudissements féliciteront la résolution d'un problème..."
Data " et des salutations marqueront la fin du jeu."
Data " Un bouton <SONS> (représenté par un haut-parleur) permet de le couper ou de le remettre en service."
Data " NOTA : Cette option est mémorisée pour le prochain démarrage du jeu."
Data ""

Hormis le verbe 'Read', ceci fonctionnait avec Gbasic (ancien Basic)
Le but recherché est d'avoir des commentaires (près de 500 lignes) inclus dans le source.

Est-ce plus clair ?

bab
0
cs_Jack Messages postés 14007 Date d'inscription samedi 29 décembre 2001 Statut Modérateur Dernière intervention 28 août 2015 78
25 janv. 2010 à 15:56
Donc, voici mon point de vue.
Si le but n'est que de stocker dans le source des chaines de caractères (comme tu le montres ici en QBasic), tu as la solution, en VB6, de coller ces textes dans un fichier de ressources qu'il te sera facile de relire depuis ton programme.
Dans la version compilée de ton programme, ces ressources feront partie intégrante de l'EXE.

Vala
Jack, MVP VB
NB : Je ne répondrai pas aux messages privés

Le savoir est la seule matière qui s'accroit quand on la partage (Socrate)
0
BABUDROME Messages postés 151 Date d'inscription lundi 16 janvier 2006 Statut Membre Dernière intervention 19 avril 2016
26 janv. 2010 à 00:15
Merci Jack
J'ai résolu mon besoin par ceci :

[i]Option Explicit
Const dMax = 330
Dim d(dMax), a, i, j, k, n
Sub Load_Data()
d(1) = "FICHIERS DE DONNEES"
d(2) = " L'ensemble des documents ..."
d(3) = " La présence des documents ..."
d(4) = " Tous ces documents sont ..."
d(5) ...
d(...) = "END"
ListData.Clear
For k 1 To dMax: a d(k)
If a = "END" Then Exit For
Pingouin.ListHelp.AddItem a: Next k
Pingouin.ListData.Visible = True
End Sub/i

L'ennui, c'est d'avoir 300 lignes qu'il m'a fallu numéroter une à une, alors que toutes étaient :
[i]Data "FICHIERS DE DONNEES ..."
Data " L'ensemble des documents ..."
Data " La présence des documents ..."
Data " Tous ces documents sont ..."
/i
Avant ces données étaient dans un fichier (Data.TXT) Que je chargeait au lancement du programme.
Mon souhait était d'éviter tout accès à son contenu. Incluses directement dans le source VB6, elles deviennent inviolables.

Maintenant, ce fichier de Ressources dont tu parles, n'est-ce-pas le même que j'avais ?
Où est-ce une autre façon d'avoir des données
inclises dans le source ?

bab
0
cs_Jack Messages postés 14007 Date d'inscription samedi 29 décembre 2001 Statut Modérateur Dernière intervention 28 août 2015 78
26 janv. 2010 à 19:26
Non.
Un fichier ressource est un fichier .RES en mode création mais les données qu'il contient sont incluses dans l'EXE lors de la compilation, d'où le texte "ces ressources feront partie intégrante de l'EXE" que j'ai pris le temps de taper.
0
cs_Jack Messages postés 14007 Date d'inscription samedi 29 décembre 2001 Statut Modérateur Dernière intervention 28 août 2015 78
26 janv. 2010 à 19:28
et non, un fichier de ressource n'est pas un fichier texte.
Il faut le gérer au travers de l'éditeur de ressources présent dans VB6 (petit rubix-cube vert).
Regarde dans l'aide, c'est expliqué.
0
cs_Jack Messages postés 14007 Date d'inscription samedi 29 décembre 2001 Statut Modérateur Dernière intervention 28 août 2015 78
26 janv. 2010 à 19:30
(encore moi)
"300 lignes qu'il m'a fallu numéroter une à une" : De toute façon, il faudra entrer dans le fichier de ressource chaque chaine, l'une après l'autre, et à la main.
0
BABUDROME Messages postés 151 Date d'inscription lundi 16 janvier 2006 Statut Membre Dernière intervention 19 avril 2016
26 janv. 2010 à 23:06
Les lignes de texte, je les avais déjà. Il m'a fallu simplement les faire précéder de [ d(N°)=" ] et remplacer N° par le rang de mes lignes.
C'est ça le fastidieux, sans compter que si je devais inséré une nouvelle ligne en position 20 par exemple, il me faudra, alors, refaire un nouveau numérototage des lignes suivantes. Bref... J'ai oublié que ce numérotage aurai pu être généré par EXCEL

J'ai bien compris ton idée de fichier (x.RES) mais je ne trouve pas l'éditeur de ressources dans VB6 (pas de petit rubix-cube vert ?) et n'ayant pas d'accès à MSDN, je ne peux aller plus loin.

En tous cas, je te remercie beaucoup pour la peine que tu a pris pour moi.

PS: Si tu as + de 40 ans, j'en ai près de 77.

Merci Jack et à+, peut-être. Bab
0
Calade Messages postés 1207 Date d'inscription dimanche 20 avril 2003 Statut Membre Dernière intervention 4 juin 2016 10
27 janv. 2010 à 08:26
Salut,

Si tu ne vois pas le "petit rubix vert", pour le faire apparaître, menu "Compléments/Gestionnaire de Compléments" et dans la liste tu choisis "Editeur de Ressources". Coches "Charger au démarrage" si tu veux qu'il soit chargé au démarrage de VB6 et "chargé/Déchargé" si tu veux qu'il soit chargé (ou non) systématiquement au démarrage de ton projet. L'état est indiqué à droite sur la ligne de ton complément.


Calade
0
BABUDROME Messages postés 151 Date d'inscription lundi 16 janvier 2006 Statut Membre Dernière intervention 19 avril 2016
27 janv. 2010 à 09:36
Salut Calade
Ok, ça marche.
Encore Merci

bab
0