Я таки столкнулся с бедой потери карты, в полевых условиях, что весьма огорчило.
Потестировав скрипт, с пристратием, выявил баг - если гармин вылетает по ошибке (что у мну и случилось), в папке garmin остается не переименованный обратно файл gmapsupp.img. Который при следующим запуске срипта успешно затирается.
Поэтому, не претендуя на авторство идеи, "слегка" подправил скрипт:
========================================================================
path = SystemPath("ScriptPath")
count = IniRead(path\"maps.ini","maps","count")
# если файл gmapsupp.img уже существует
if (FileExists(path\"gmapsupp.img"))
for c=0 to count
xfile=path\"maps\m"&(c+1)&".img"
if (FileExists(xfile) = false)
file=xfile
break
endif
next
if (c=count)
file=path\"maps\m"&(c+1)&".img"
Message("Unknow map, saved as: "&file)
Rename(path\"gmapsupp.img",file,TRUE)
IniWrite(path\"maps.ini","maps","count",(c+1))
IniWrite(path\"maps.ini","maps","m"&(c+1),"Unknow map")
count=c
else
Rename(path\"gmapsupp.img",file,TRUE)
Message("Unknow map, saved as: "&file)
endif
EndIf
c=0
while(c<count)
s[c+1]=IniRead(path\"maps.ini","maps","m"&(c+1))
c=c+1
endwhile
c = Choice("Карты","Выберите карту",0,0,s)
file=path\"maps\m"&c&".img"
if (FileExists(file))
Rename(file,path\"gmapsupp.img",TRUE)
RunWait(path\"RunGMXT\garmin.exe")
Rename(path\"gmapsupp.img",file,TRUE)
PlaySound(path\"complete.wav")
else
Message("File Not Found!")
EndIf
==================================================================
- алгоритм и логика примерно следующие: если при запуске обнаруживаем файл garmin\gmapsupp.img, пытаемся определить какой из maps\mX.img отсутствует и переименовываем "потеряшку". Если все файлы на месте, до добавляем карту в набор как неизвестную карту.
Для того чтобы все заработало, в файл map.ini в секцию maps необходимо добавить строку count=N, где N-кол-во карт в наборе (их кстати, теперь можеть быть больше 5).
MostScript версия 4.3 брал тут: http://www.sto-helit.de/downloads/morts … 4.3b11.zip
Глубоко не тестил, возможны косяки, если что, сильно не ругайте.