FORUM DE DISCUSSION SUR LE LANGAGE PANORAMIC
Vous souhaitez réagir à ce message ? Créez un compte en quelques clics ou connectez-vous pour continuer.
FORUM DE DISCUSSION SUR LE LANGAGE PANORAMIC

Développement d'applications avec le langage Panoramic
 
AccueilAccueil  RechercherRechercher  Dernières imagesDernières images  S'enregistrerS'enregistrer  MembresMembres  Connexion  
Derniers sujets
» Gestion d'un système client-serveur.
auto bug Emptypar Klaus Ven 17 Mai 2024 - 14:02

» item_index(résolu)
auto bug Emptypar jjn4 Mar 14 Mai 2024 - 19:38

» Bataille terrestre
auto bug Emptypar jjn4 Lun 13 Mai 2024 - 15:01

» SineCube
auto bug Emptypar Marc Sam 11 Mai 2024 - 12:38

» Editeur EliP 6 : Le Tiny éditeur avec 25 onglets de travail
auto bug Emptypar Marc Sam 11 Mai 2024 - 12:22

» Philharmusique
auto bug Emptypar jjn4 Ven 10 Mai 2024 - 13:58

» PANORAMIC V 1
auto bug Emptypar papydall Jeu 9 Mai 2024 - 3:22

» select intégrés [résolu]
auto bug Emptypar jjn4 Mer 8 Mai 2024 - 17:00

» number_mouse_up
auto bug Emptypar jjn4 Mer 8 Mai 2024 - 11:59

» Aide de PANORAMIC
auto bug Emptypar jjn4 Mer 8 Mai 2024 - 11:16

» trop de fichiers en cours
auto bug Emptypar lepetitmarocain Mer 8 Mai 2024 - 10:43

» Je teste PANORAMIC V 1 beta 1
auto bug Emptypar papydall Mer 8 Mai 2024 - 4:17

» bouton dans autre form que 0(résolu)
auto bug Emptypar leclode Lun 6 Mai 2024 - 13:59

» KGF_dll - nouvelles versions
auto bug Emptypar Klaus Lun 6 Mai 2024 - 11:41

» @Jack
auto bug Emptypar Jack Mar 30 Avr 2024 - 20:40

Navigation
 Portail
 Index
 Membres
 Profil
 FAQ
 Rechercher
Rechercher
 
 

Résultats par :
 
Rechercher Recherche avancée
Mai 2024
LunMarMerJeuVenSamDim
  12345
6789101112
13141516171819
20212223242526
2728293031  
CalendrierCalendrier
Le Deal du moment :
Funko POP! Jumbo One Piece Kaido Dragon Form : ...
Voir le deal

 

 auto bug

Aller en bas 
4 participants
AuteurMessage
Yannick




Nombre de messages : 8611
Age : 53
Localisation : Bretagne
Date d'inscription : 15/02/2010

auto bug Empty
MessageSujet: auto bug   auto bug EmptyMar 9 Mar 2010 - 15:47

Je me suis bugger tout seul.
J'ai ecrit ceci :
Code:
 dim k$,d$,d2$,d3$
 dim k%
 dim ligne,ligne$
 k$=";"

 dlist 1
 file_load 1,"Monfichier.txt"
 for ligne= 1 to count(1)
 
 rem 'Détermination de la position du separateur
 
 ligne$=item_read$(1,ligne)
 K%=instr(ligne$,k$)
 
 rem 'Capture de la première donnée

 d$=left$(ligne$,k%-1)
 print "Ligne n°: "+str$(ligne)
 print d$

 rem 'Capture de la seconde donnée
 
 ligne$ = MID$(ligne$, k% + 1, LEN(ligne$) - k%)
 d2$=left$(ligne$,k%-1)
 ligne$ = MID$(ligne$, k% + 1, LEN(ligne$) - k%)
 d3$=left$(ligne$,k%-1)
 print d2$
 print d3$
 next ligne

puis j'ai voulu utiliser ce bout de code avec un autre fichier .txt
et là c'est le bug:

Code:
dim ligne,ligne$,k$,k%,d$,d2$,d3$,d4$,d5$,d6$,d7$

 
 dlist 118
 file_load 118,"Bases\effectif.txt"
 
 for ligne= 1 to count(118)
 ligne$=item_read$(118,ligne)
 k$="/"
 K%=instr(ligne$,k$)
 d$=left$(ligne$,k%-1)
 print d$
 ligne$=MID$(ligne$,k% +1,LEN(ligne$)-k%)
 d2$=left$(ligne$,k%-1)
 print d2$
 ligne$=MID$(ligne$,k% +1,LEN(ligne$)-k%)
 d3$=left$(ligne$,k%-1)
 print d3$
 ligne$=MID$(ligne$,k% +1,LEN(ligne$)-k%)
 d4$=left$(ligne$,k%-1)
 print d4$
 ligne$=MID$(ligne$,k% +1,LEN(ligne$)-k%)
 d5$=left$(ligne$,k%-1)
 print d5$
 ligne$=MID$(ligne$,k% +1,LEN(ligne$)-k%)
 d6$=left$(ligne$,k%-1)
 print d6$
 ligne$=MID$(ligne$,k% +1,LEN(ligne$)-k%)
 d7$=left$(ligne$,k%-1)
 print d7$
 if item_index$(100)=d$
 text 109,d$:text 110,d2$:text 111,d3$:text 112,d4$:text 113,d5$:text 114,d6$
 text 115,d7$
 end_if
 next ligne

dans le deuxième cas la variable "k%" bloque sur sa première valeur
ce qui me donne une erreur de type incorrect string call value 0 ou inferieure
Revenir en haut Aller en bas
Jean Claude

Jean Claude


Nombre de messages : 5950
Age : 69
Localisation : 83 Var
Date d'inscription : 07/05/2009

auto bug Empty
MessageSujet: Re: auto bug   auto bug EmptyMar 9 Mar 2010 - 22:10

Un truc qui me choque dans ton code
Code:
K%=instr(ligne$,k$)

K% n'est pas un string($), si je ne me trompe pas.

A+
Revenir en haut Aller en bas
JL35




Nombre de messages : 7095
Localisation : 77
Date d'inscription : 29/11/2007

auto bug Empty
MessageSujet: Re: auto bug   auto bug EmptyMar 9 Mar 2010 - 22:20

Eh JC, normal, K% est un entier (on recherche la position de k$ dans ligne$)
Revenir en haut Aller en bas
Jean Claude

Jean Claude


Nombre de messages : 5950
Age : 69
Localisation : 83 Var
Date d'inscription : 07/05/2009

auto bug Empty
MessageSujet: Re: auto bug   auto bug EmptyMer 10 Mar 2010 - 9:18

Autant pour moi, c'est une instruction dont je ne me sert pas. J'ai surement tord. il me faudrait un exemple concret pour comprendre la finalité de cette commande. Mais pas ici.
Revenir en haut Aller en bas
Yannick




Nombre de messages : 8611
Age : 53
Localisation : Bretagne
Date d'inscription : 15/02/2010

auto bug Empty
MessageSujet: Re: auto bug   auto bug EmptyMer 10 Mar 2010 - 16:28

Code:
K%=instr(ligne$,k$)

k% position dans la ligne "ligne$" de "k$" le separateur
Revenir en haut Aller en bas
Yannick




Nombre de messages : 8611
Age : 53
Localisation : Bretagne
Date d'inscription : 15/02/2010

auto bug Empty
MessageSujet: Re: auto bug   auto bug EmptyMer 10 Mar 2010 - 16:34

en fait je demande à mon prog le nombre de caractere de la ligne
puis je lui demande de retrouver la position de mon separateur
puis de me renvoyer la donnée placée avant ce separateur.

ensuite, je lui demande de relire la même ligne en prenant pour point de depart le separateur avec la même suite pour extraire la deuxième donnée de cette ligne.

et ainsi de suite scratch
Revenir en haut Aller en bas
Klaus

Klaus


Nombre de messages : 12301
Age : 75
Localisation : Ile de France
Date d'inscription : 29/12/2009

auto bug Empty
MessageSujet: Re: auto bug   auto bug EmptyMer 10 Mar 2010 - 17:22

Salut,

Je fais souvent ce genre d'analyse de strings, mais je n'hésite pas à modifier ma variable en entrée, comme ceci:

Code:

label fruit
dim i%,a$ b$,f$
a$ = "pommes,bananes,cerises,abricots,fraises"

b$ = a$
i% = instr(b$,",")
while i%>0
    f$ = left$(b$,i%-1)
    gosub fruit
    b$ = right$(b$,len(b$)-i%)
    i% = instr(b$,",")
end_while
f$ = b$
gosub fruit
end

fruit:
message "fruit trouvé: " + f$
return

De cette manière, tu peux facilement prendre un élément après l'autre pour le traiter, tout en gardant ta ligne initiale (a$) intacte.
Revenir en haut Aller en bas
http://klauspanoramic.comxa.com/index.html
JL35




Nombre de messages : 7095
Localisation : 77
Date d'inscription : 29/11/2007

auto bug Empty
MessageSujet: Re: auto bug   auto bug EmptyMer 10 Mar 2010 - 17:28

Ca fait intervenir des variables supplémentaires, mais on ne peut pas faire autrement. Comme je dis ailleurs, c'est dommage qu'on n'ait pas un Instr avec en paramètre la position de départ, pour faire plus simplement des recherches successives dans la même chaîne.
Revenir en haut Aller en bas
Yannick




Nombre de messages : 8611
Age : 53
Localisation : Bretagne
Date d'inscription : 15/02/2010

auto bug Empty
MessageSujet: Re: auto bug   auto bug EmptyMer 10 Mar 2010 - 17:32

Merci je regarde cela a tete reposé jocolor affraid
Revenir en haut Aller en bas
Invité
Invité




auto bug Empty
MessageSujet: Re: auto bug   auto bug EmptyMer 10 Mar 2010 - 21:34

j'utilise maintenant une autre façon (ce n'est valable que si le nombre d'éléments est limité)
par exemple :
nom,prénom,age,date de naissance
par programme je fais:
Code:

dim a$,age$
font_size 0,14
a$="nom"+chr$(1)+"prénom"+chr$(2)+"age"+chr$(3)+"date de naissance"
age$=mid$(a$, instr(a$,chr$(2))+1 , instr(a$,chr$(3)) - instr(a$,chr$(2))-1)
print age$
Cela fait un peu charabia, mais n'utilise qu'une ligne avec un minimum de code pour saisir une partie d'un string.
Là, je pense que je peux me cacher.
Revenir en haut Aller en bas
Klaus

Klaus


Nombre de messages : 12301
Age : 75
Localisation : Ile de France
Date d'inscription : 29/12/2009

auto bug Empty
MessageSujet: Re: auto bug   auto bug EmptyMer 10 Mar 2010 - 22:24

Pourquoi de cacher ? Toute astuce est bonne à prendre ! Et je dois dire que je n'avais pas pensé au coup des separteurs différents pour chaque partie du code.

Comme tu dis, ça devient vite galère sile nombre de parties augmente. Mais bien plus important: évite d'écrire ce genre de strings dans un fichier texte - tu risques d'avoir des surprises. Si tu l'écris dans un fichier, il fait le faire en binaire, et le relire en binaire - ce qui pose d'autres problèmes abev des strings par nature en longueur variable.

Si ces informations doivent être mémorisées dans un fichier texte, mieux vaut s'en tenir à un séparateur unique dans le domaine des catactères de valeur ASCII entre 32 et 127 (sans entrer en conflit avec les textes à mémoriser).

Sinon, une solution qui a déjà été mentionnée ailleurs (je ne me rappelle plus par qui, on me le pardonnera): écris chaque u=information sur une ligne séparée, SANS séparateur de texte, et termine un ensemble d'éléments par une ligne particulière, par exemple une ligne vide ou une ligne contenant "*** fin ensemble ***".

Le code pour gérer cela est ultra-simple.
Revenir en haut Aller en bas
http://klauspanoramic.comxa.com/index.html
JL35




Nombre de messages : 7095
Localisation : 77
Date d'inscription : 29/11/2007

auto bug Empty
MessageSujet: Re: auto bug   auto bug EmptyMer 10 Mar 2010 - 22:57

C'est bien joli, mais ce n'est valable que si on est maître de la mise en forme, c'est à dire si on est le créateur ET l'utilisateur du fichier.
Pour étudier un fichier externe il faut bien passer par le instr.
Et comme dit Klaus, les caractères inférieurs à 32 peuvent réserver des surprises dans les fichiers textes.
Revenir en haut Aller en bas
Invité
Invité




auto bug Empty
MessageSujet: Re: auto bug   auto bug EmptyMer 10 Mar 2010 - 23:03

Je reprends ta réponse. Les séparateurs peuvent être écris si tu évite le 0, le 10 et le 13 et le 9 aussi, mais ne pose pas de problèmes pour ceux que je propose, il sont sauvegardé normalement ou relu dans un mémo, seul l'affichage du caractère selon la fonte, est différent. Ce type de codage se fait par programme et n'est pas fait pour être écris directement à partir d'un éditeur, d'un mémo ou autre quelconque.
Tu remplis par exemple un 'tableur" (pour simplifier l'explication), tu relève chaque info, et tu les mets en chaine. C'est comme cela que je vois le truc.
A bientôt
Revenir en haut Aller en bas
JL35




Nombre de messages : 7095
Localisation : 77
Date d'inscription : 29/11/2007

auto bug Empty
MessageSujet: Re: auto bug   auto bug EmptyMer 10 Mar 2010 - 23:30

Je reconnais bien volontiers que c'est une solution, mais pas très universelle.

Bon, sur ce, bonne nuit ! Sleep
Revenir en haut Aller en bas
Contenu sponsorisé





auto bug Empty
MessageSujet: Re: auto bug   auto bug Empty

Revenir en haut Aller en bas
 
auto bug
Revenir en haut 
Page 1 sur 1
 Sujets similaires
-
» Un exécutable qui s'auto-èdétruit
» Auto création d'un Menu Panoramic
» V2.65 du 04/12/2013 - Toolbar pos. auto si chg taille form
» 2.33 du 14 mai 2013: ajout fonctions pour mise à jour auto

Permission de ce forum:Vous ne pouvez pas répondre aux sujets dans ce forum
FORUM DE DISCUSSION SUR LE LANGAGE PANORAMIC :: PANORAMIC :: A l'aide!-
Sauter vers: