Pages: 1
- Sujet précédent - plantage lors de l'affichage de la table attributaire d'une selection - Sujet suivant
#1 Wed 25 November 2009 07:17
- Yulahop
- Participant occasionnel
- Lieu: Nouméa Nouvelle-Calédonie
- Date d'inscription: 22 Jun 2006
- Messages: 18
plantage lors de l'affichage de la table attributaire d'une selection
Bonjour !
Alors que je faisais des essais pour tester une macro map basic que j'ai écris, mapinfo a planté.
Eu égard à mon niveau de map basic, rien d'étonnant jusque là.
Ce qui est plus embêtant c'est que depuis, mapinfo plante quand je veux faire afficher la table attributaire d'une sélection alors que le mbx n'est pas chargé.
Quelqu'un a t il déjà été confronté à un problème similaire ?
mapinfo 8.5.1B
mapbasic 6.5
Yaël
Hors ligne
#2 Wed 25 November 2009 12:29
- Maurice
- Membre
- Lieu: Montpellier
- Date d'inscription: 5 Sep 2005
- Messages: 5331
Re: plantage lors de l'affichage de la table attributaire d'une selection
Bonjour
Mystère (pour moi)....que seule la vision du code de votre mbx pourrait peut être éclaircir !!
Vous nous montrez ça ??
Hors ligne
#3 Wed 25 November 2009 23:45
- Yulahop
- Participant occasionnel
- Lieu: Nouméa Nouvelle-Calédonie
- Date d'inscription: 22 Jun 2006
- Messages: 18
Re: plantage lors de l'affichage de la table attributaire d'une selection
Bonjour !
Précision sur le but du code :
j'ai deux tables (A et B) de point et je cherche à identifier pour chaque point de la table A le point le plus proche de la table B.
Ensuite je trace une droite dans une 3e table pour relier chaque point A avec son plus proche point B.
J'ai écrits deux boucles pour comparer chaque point A a chaque point B.
Lors d'un premier essais sur des tables avec de nombreux points A, la routine semblait tourné normalement. Je l'ai interrompu pour la faire tourner sur des fichiers moins gros pour voir le résultat final.
Mes ennuis ont commencé après
Voici le code fautif qui paraitra peut être maladroit pour les puristes de MB
Code:
include "C:\Program Files\MapInfo\MapBasic\MAPBASIC.DEF" declare sub main sub main set coordsys Earth Projection 8, 9999, 4, 97.295, -263.237, 310.866, 1.599931, -0.838952, -3.14118, 13.325864, 0, "m", 165, 0, 0.9996, 500000, 10000000 Bounds (-7746230.6469, 1712.61611073) (8746230.6469, 19998287.3839) 'les variables dim xdol as float 'coordonnées pt A dim ydol as float dim xpt as float 'coordonnées pt B dim ypt as float dim xclst as float 'coordonnées pt + près dim yclst as float dim distmin as float dim distcalc as float dim nb_ptdoline as integer dim nb_ptligne as integer dim n as integer dim j as integer dim dol as object 'objet point de la table A dim opt as object 'objet point de la table B 'ouverture des tables A, B et création de la table de stockage des lignes droites open table "C:\Etude\A09-52 - Doline\SELECTION DE DOLINE.tab" as ptdoline open table "C:\Etude\A09-52 - Doline\LIMITE_PLATEAU_ptp.tab" as ptligne Create Table "CHEMIN_COURT" (OBJ_ID char(10), LONGUEUR float) file "C:\Etude\CHEMIN_COURT.TAB" TYPE NATIVE Charset "WindowsLatin1" 'fenêtre carte pour les chemin les plus courts Create Map For CHEMIN_COURT CoordSys Earth Projection 8, 9999, 4, 97.295, -263.237, 310.866, 1.599931, -0.838952, -3.14118, 13.325864, 0, "m", 165, 0, 0.9996, 500000, 10000000 Bounds (-7746230.6469, 1712.61611073) (8746230.6469, 19998287.3839) Map from CHEMIN_COURT Set Map Layer 1 Editable On nb_ptdoline = tableinfo(ptdoline, TAB_INFO_NROWS) nb_ptligne = tableinfo(ptligne, TAB_INFO_NROWS) print "nombre de dolines à traiter: " & nb_ptdoline print "nombre de points a comparer: " & nb_ptligne distmin = 1000000 n = 1 j = 1 for n = 1 to nb_ptdoline print "doline traitée : " & n & " sur " & nb_ptdoline select * from ptdoline where rowid = n dol = selection.obj xdol = objectgeography(dol, OBJ_GEO_POINTX) print xdol ydol = objectgeography(dol, OBJ_GEO_POINTY) print ydol for j = 1 to nb_ptligne select * from ptligne where rowid = j opt = selection.obj xpt = objectgeography(opt, OBJ_GEO_POINTX) print xpt ypt = objectgeography(opt, OBJ_GEO_POINTY) print ypt 'calcul de la distance distcalc = sqr(abs(xdol - xpt) * abs(xdol - xpt) + abs(ydol - ypt) * abs(ydol - ypt)) print distcalc if distcalc < distmin then distmin = distcalc xclst = xpt yclst = ypt end if j = j + 1 next note distmin create line into window frontwindow() (xdol, ydol) (xclst, yclst) commit table CHEMIN_COURT n = n + 1 next end sub
Entre temps, j'ai réinstallé MI mais le problème persiste et nettoyé le registre.
Merci pour votre aide et vos remarques.
Salutations
Yaël
Hors ligne
#4 Thu 26 November 2009 02:05
- Yulahop
- Participant occasionnel
- Lieu: Nouméa Nouvelle-Calédonie
- Date d'inscription: 22 Jun 2006
- Messages: 18
Re: plantage lors de l'affichage de la table attributaire d'une selection
Petite précision :
Le problème de plantage survient également lorsque je demande un fenêtre mise en page...
Yaël
Hors ligne
#5 Thu 26 November 2009 09:41
- Maurice
- Membre
- Lieu: Montpellier
- Date d'inscription: 5 Sep 2005
- Messages: 5331
Re: plantage lors de l'affichage de la table attributaire d'une selection
Bonjour
Rien d'illégal dans ce code...qui n'est pas en cause.
Alors le mystère reste entier
Quand vous dites plantage, ça se traduit par quoi: vraiment planté, ou alors rien ne se passe ??
Dans le second cas les fenêtres sont peut être hors écran ??
Ce plantage survient sur toute table, ou seulement sur certaines liées à ce mbx ??
ps: éviter espaces, accents, caractères "spéciaux" ...dans les nom de table
Hors ligne
#6 Fri 27 November 2009 04:13
- Yulahop
- Participant occasionnel
- Lieu: Nouméa Nouvelle-Calédonie
- Date d'inscription: 22 Jun 2006
- Messages: 18
Re: plantage lors de l'affichage de la table attributaire d'une selection
Bonjour,
Le plantage se manifeste par la transformation de la flèche du pointeur en sablier puis par l'affichage de "ne répond pas" dans la barre de titre de la fenêtre MI. Un peu comme dans le cas d'une routine coincée dans une boucle infinie.
Ce plantage survient quelque soit la table.
J'ai également remarqué que plusieurs outils étaient chargés plusieurs fois (coordinate extractor, rotation symbol, etc...).
Yaël
Hors ligne
#7 Fri 27 November 2009 06:47
- Yulahop
- Participant occasionnel
- Lieu: Nouméa Nouvelle-Calédonie
- Date d'inscription: 22 Jun 2006
- Messages: 18
Re: plantage lors de l'affichage de la table attributaire d'une selection
J'ai finalement réussi à résoudre le problème.
Mon répertoire TEMP était rempli de plusieurs milliers de fichiers temporaires MI.
J'ai tout supprimé et tout est rentré dans l'ordre.
Merci pour vos réponses.
Yaël
Hors ligne
#8 Fri 27 November 2009 08:07
- Maurice
- Membre
- Lieu: Montpellier
- Date d'inscription: 5 Sep 2005
- Messages: 5331
Re: plantage lors de l'affichage de la table attributaire d'une selection
Bon sang mais c'est bien sûr !!....
C'est un classique qu'on oublie trop souvent: que ce soit à l'occasion d'un développement (qui s'accompagne toujours d'essais ratés et de plantages ...) ou en fonctionnement "normal", le TEMP a tendance à gonfler
Et quand TEMP gavé, lui toujours faire ainsi....
Hors ligne
Pages: 1
- Sujet précédent - plantage lors de l'affichage de la table attributaire d'une selection - Sujet suivant