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 subEntre 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


