Gambas France BETA


Pas de compte ? Incription

Bonjour

1
AuteurMessages
Zoltic#1 Posté le 30/1/2012 à 18:41:43
Bonjour à tous et toutes.

Ben oui, quand j'étais jeune on disait "bonjour" en entrant dans un bistro alors, bien que plus très jeune, je continue.

Au passage, ça serait peut-être pas mal un "thread" dédié aux présentations......... ;)
J'ai vu qu'un autre "troisième âge" s'était lancé directement alors je fais de même et j'en profite pour présenter mes salutations à PapyBasic de la part d'un encore plus "vieux" (57 aux fraises). :)
Ceci dit, je suis pas venu ici faire des mondanités. Je me rends compte que je suis plus atteins que je ne le pensais et ça me travaille.

J'explique.

J'ai un petit projet perso, pas compliqué, mais qui nécessite la lecture de fichiers binaires dont j'ignore tout ou presque. Tout ce que je sais c'est qu'il s'agit de "pseudo compilé" à partir de codes opérationnels. Pour ceux qui, comme moi, ont vécu à la préhistoire, dans le genre du PL0 de Niklaus Wirth. Enfin bref, pas la peine d'en faire des tartines, tout ce que je sais de ces fichiers c'est que chaque "code op" possède un certain nombre d'arguments, variable d'un code à l'autre.
La partie décodage et "retro-processing" ne pose aucun problème c'est une bête "traduction" en langage plus clair que "23 145 212 10" ou un truc du genre. Le but final étant d'écrire le pseudo compilateur et l'interpréteur de ce code.

Ce qui me vexe le plus, c'est que, programmeur professionnel en Basic et assembleur dans les années 80, puis en Fortran, Pascal, C, j'en passe et des plus exotiques, j'ai plus ou moins abandonné la programmation pure et dure au profit de l'organisation de réseaux, de gestions de parcs informatiques et toute la sauce qui va avec depuis une dizaine d'années.
Et là, paf, sans crier gare, voilà que je décide de revenir à mes premières amours mais que la "fille" ne m'a pas attendu. Elle a évolué, la bougresse et me voilà comme un débutant, incapable de m'adresser à elle dans un langage que je comprends.

Je cherche donc la bonne âme, ou le "tuto" qui m'expliquera comment écrire les quelques lignes qui me permettront de remplir un tableau à partir d'un fichier.
Dans le temps on écrivait un truc du genre :

Dim A(5000) AS BYTE
Open #1, "toto", FOR READ
Taille = LEN(#1)
Read #1, A(0), Taille
Close #1

Et le tour était joué. Mais il parait que maintenant ce genre de truc est considéré comme une insulte personnelle par le système. Enfin, les insultes c'est moi qui les mange à coup de : Variable inattendue, Déclaration non permise, et autres que je n'ai pas retenues.

Je n'ai rien contre la modernité mais j'avoue que :
"Déclaration de tableau"
Je comprends ce que cela veut dire, mais que
"Instanciation d'un objet de classe Z"
C'est pire que du chinois, le graphisme n'est même pas élégant.

Voilà, si parmi vous, quand il aura finit de rigoler devant mon ignorance, une bonne âme avait l'obligeance de m'indiquer où je peux trouver comment avancer un peu, j'avoue que j'en serais soulagé. Pour la partie écriture, une fois la lecture réalisée je pense que je serai capable d'adapter la procédure. :)

Quoi qu'il en soit, bonne année à tous et toutes, et longue vie aux compagnons du pingouin.

Point n'est besoin d'espérer pour entreprendre ni de réussir pour persévérer.
Charles de Valois-Bourgogne, dit "le Téméraire".
spheris#2 Posté le 30/1/2012 à 19:05:25
Bonsoir Zoltic,

Dans la mesure ou tes données de départ sont dans un fichier texte, voici un moyen simple de les passer dans un tableau :

http://gambaslinux.eg2.fr/articles.php?lng=fr&pg=249

si cela provient d'un bdd, alors :

http://gambaslinux.eg2.fr/articles.php?lng=fr&pg=421

apres pour l'utilisation des tableaux, ce site excellent :

http://www.siteduzero.com/tutoriel-3-299713-un-exemple-d-objet-les-tableaux.html

et bien sur la doc officielle de gambas. :

http://gambasdoc.org/help/cat/array?fr&view

Bienvenue.
;)
Zoltic#3 Posté le 30/1/2012 à 19:15:09
Heuuuuu Il me semble bien avoir précisé qu'il s'agissait de fichier "binaire", hélas, pas texte ni bdd.

Pour être précis, j'ai déjà écrit le programme en gw-basic y'a plus de 25 ans (sous DOS 5 pour être précis). Mais à l'époque je mettais la liste des fichiers à compiler et/ou à décompiler dans un fichier texte et le prog tournait en batch. Faut dire que les interfaces graphiques c'était encore une utopie pas une réalité. Aujourd'hui faut que je m'adapte au choix du fichier à traiter par affichage des répertoires et click de souris, d'où mon passage à un "système" plus moderne.

Merci pour les liens, je vais jeter un coup d'oeil.
Point n'est besoin d'espérer pour entreprendre ni de réussir pour persévérer.
Charles de Valois-Bourgogne, dit "le Téméraire".
Prokopy#4 Posté le 30/1/2012 à 20:10:20
Kinder PinguiSalut et bienvenue à toi Zoltic,

Pour charger un fichier (binaire ou pas), tu peux plus simplement utiliser la fonction File.Load() :

1
2
DIM data AS STRING
data = File.Load("monfichier")


Si tu tiens à avoir un tableau de Byte, tu peux passer du type string au type Byte[] comme ceci :

1
2
DIM data AS Byte[]
data = Byte[].FromString(File.Load("toto.txt"))


Voilà. :)
La théorie, c'est quand on sait tout et que rien ne fonctionne.
La pratique, c'est quand ça marche mais qu'on ne sait pas pourquoi.
Quand la théorie rejoint la pratique, rien ne fonctionne et on ne sait pas pourquoi.
Zoltic#5 Posté le 30/1/2012 à 20:32:42
Ben là tu m'en bouches un coin. :)

Mais je croyais que les strings étaient précédés de leur longueur. dans ce cas là ça va pas franchement résoudre mon problème. J'ai peur de perdre des données dans l'affaire d'autant qu'il y a pas de signe de "fin de ligne" ni de fin de texte. Les codes correspondants aux CR, LF, "\0", et autres sont des datas, pas des signaux.

Mais je veux bien essayer, on verra bien. :)

NB: Je "tiens" au fichier d'octets non signés, car, comme je l'ai dit, les routines de décodage sont déjà écrites et j'ai la flemme de les adapter. ;)
Et surtout de tout tester et de contrôler par un décodage à l'ancienne, c'est à dire : à la main.

Merci pour le tuyau.
Point n'est besoin d'espérer pour entreprendre ni de réussir pour persévérer.
Charles de Valois-Bourgogne, dit "le Téméraire".
Prokopy#6 Posté le 30/1/2012 à 20:56:45
Kinder Pingui
Mais je croyais que les strings étaient précédés de leur longueur.


Techniquement oui, mais Gambas gère tout ça pour toi. ;)
Dans ton tableau il y aura uniquement les données que tu veux. Pas de longeur de texte ou de "\0". Tout est géré automatiquement pour plus de simplicité.

Par exemple, si dans mon fichier (texte ou binaire, c'est pareil), j'ai ça :

Salut !


Alors dans mon tableau il y aura ça :

83 97 108 117 116 32 33


Et pis c'est tout. :)
La théorie, c'est quand on sait tout et que rien ne fonctionne.
La pratique, c'est quand ça marche mais qu'on ne sait pas pourquoi.
Quand la théorie rejoint la pratique, rien ne fonctionne et on ne sait pas pourquoi.
spheris#7 Posté le 30/1/2012 à 21:41:24
proko, parenthere mais comment fais-tu pour afficher ton texte sur fond noir (bbcode) quelles balises utilises-tu ?
;)


Pffff...

Prokopy#8 Posté le 30/1/2012 à 21:43:55
Kinder PinguiC'est la balise console. :)
La théorie, c'est quand on sait tout et que rien ne fonctionne.
La pratique, c'est quand ça marche mais qu'on ne sait pas pourquoi.
Quand la théorie rejoint la pratique, rien ne fonctionne et on ne sait pas pourquoi.
jeanyvon#9 Posté le 31/1/2012 à 07:28:20
Gambas? Ma! Et gustoSalut Zoltic,
Bienvenu
Tu n'es pas vieux : j'ai presque 10 piges de + que toi
A+
JY
Vieillir? On peut retarder mais pas y échapper!
Zoltic#10 Posté le 31/1/2012 à 10:45:39
Salut Jeanyvon,

Merci de tenter de me remonter le moral mais...... c'est pas ja peine. :) :) :)

Je ne me sens pas vieux pour deux ronds. C'est juste une façon de dire :

J'ai appris l'informatique à l'époque des dinosaures, du temps où il fallait chasser le byte perdu pour gagner de la place (mon premier ordi perso, en 1977, possédait 512 octets de mémoire vive, avec l'extension qui m'avait coutée un mois de salaire) alors que vous, les jeunes, vivez dans l’opulence du méga octet.
Votre outil de programmation c'est la tablette et l'écran tactile, nous on avait une "puncheuse" dans la poche quand on jouait au tiercé, le reste du temps on perforait nos cartes avec un burin et un marteau.
Vous vous posez des questions sur le rendu 3D, à l'écran, de votre diagramme de performance, nous on alignait les * | = + et autres signes pour dessiner des "courbes" sur des feuilles de listing qu'on affichait au mur pour prendre du recul et les visualiser dans leur ensemble.

Je ne me plains pas, au contraire même, je suis fier d'avoir participé à la préhistoire de l'informatique et je me sens proche de Blériot, Guynemer, Lindberg, bref d'avoir été un pionnier.

Les questions qu'on se posait n'était pas sur le choix d'une distribution (Mandriva, Suse, Gentoo, Debian, .....) mais : Qui est donc Linus Thorvald ? Que va donc nous sortir Sir Sinclair pour remplacer le ZX81 ?

Tu vois, c'est plutôt de la nostalgie, à classer avec la confiture de grand-mère, et les parties de pêche avec grand père. Une façon de ne pas pleurer sur des bonheurs défunts, mais au contraire de raviver de bons souvenirs et de garder espoir dans le génie humain.

Parvenu à l'âge d'être grand père, les forums et les "réseaux sociaux" ayant remplacé le coin du feu, il me reste l'envie de partager ce que j'ai vécu.

Mais bon, bref, on est pas à une réunion d'anciens combattants, je vais pas m'étendre plus longtemps sur le sujet, on va finir par me prendre pour un radoteur. :)

Bonne journée à tous et portez vous bien.
Point n'est besoin d'espérer pour entreprendre ni de réussir pour persévérer.
Charles de Valois-Bourgogne, dit "le Téméraire".
spheris#11 Posté le 31/1/2012 à 22:19:00
Rassure toi Zoltic, moi aussi j'aimais bien ecouter le Crrrrr...crrrr des cassettes qui préchargeait mon jeux de ping pong sur mon ZX81, et ce n'est pas si loin que cela...
Tu verras vite que gambas a beaucoup de similitudes avec ce que tu as connu.
courage.
;)
1