![]() |
|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
![]() |
|
|
Опции темы | Поиск в этой теме |
![]() |
#1 |
Пользователь
Регистрация: 16.08.2009
Сообщений: 11
|
![]()
1. Есть программа в Excel VBA которая экспортирует данные в текстовый файл. Как экспортировать с помощью макросов в текстовый файл с кодировкой UTF-16 LE/UCS-2 Little Endian, или как средствами excel экспортнуть в txt с данной кодировкой.
2. Как реализовать с помощью Excel VBA? Есть некая область ограниченная географическими координатами пример: 60.599600, 33.196300 61.315138, 34.011249 60.619674, 35.035055 60.599605, 33.190558 Необходимо выполнить проверку входит ли точка с координатами 60.539773, 33.525762 в данную область? Умоляю помочь - вопрос жизни и смерти!!! ![]() |
![]() |
![]() |
![]() |
#2 | |
Программист VBA
СуперМодератор
Регистрация: 13.07.2008
Сообщений: 6,858
|
![]()
1.
Судя по тому, что Вы до сих пор не получили ответа на этот вопрос на соседнем форуме, не так-то всё и просто. В Excel у метода SaveAs нет параметра Encoding, который задавал бы кодировку текста. Зато такой параметр есть у аналогичного метода в Microsoft Word Цитата:
То есть, средствами excel Вы формируете файл в стандартной кодировке, а потом используете Word для перекодировки (всё это можно сделать макросом из Excel, а Word даже не будет отображаться на экране) 2. Реализовать, в принципе, несложно. Чистая геометрия. Но надо знать, как Вы хотите использовать результаты вычислений, и откуда получать исходные данные - координаты 4 точек. Можно написать пользовательскую функцию, которая в качестве параметров будет принимать координаты проверяемой точки, и координаты области, и возвращать логическое значение - входит указанная точка в заданную область, или нет. Впрочем (вдруг кто знает), может, в Excel есть аналогичная встроенная функция? |
|
![]() |
![]() |
![]() |
#3 |
Пользователь
Регистрация: 16.08.2009
Сообщений: 11
|
![]()
За первый вопрос огромное мерси, чего то не подумал про Word, уперся в Excel. (просто танцую от радости).
По второму вопросу, необязательно присутствие 4 точек, их будет множество, ну или типа того. Про геометрию понятно, но не совсем, когда фигура правильная мне все ясно, но если точек 100-200 и фигура неправильная. Необходимо откординатить каждую область России жестко забив их в макрос(области). Затем поиск в столбцах с координатами, если точка соответствует заданной области она сохраняется/добавляется в конец txt файла с названием данной области (moskovskay_obl.txt) и так весь файл exel экспортируется по координатам в разные txt файлы, с соответстствующими названиями областей. |
![]() |
![]() |
![]() |
#4 | |
Программист VBA
СуперМодератор
Регистрация: 13.07.2008
Сообщений: 6,858
|
![]() Цитата:
Или это уже сделано - есть список координат каждого региона? Точек может быть сколько угодно, причём совсем необязательно, чтобы они образовывали правильный многоугольник. Областей не так уж и много, поэтому макрос практически мгновенно проверит принадлежность указанной точки всем заданным областям. Координаты областей лучше забивать не в макрос, а поместить их в ячейки листа Excel. Например, каждый столбец будет содержать название и координаты одной из областей. Желательно, чтобы название области (в первой ячейке каждого столбца) совпадало с именем текстового файла, в который надо помещать координаты точек. Будет файл со списком координат областей, и лист со списком координат точек, которые нужно раскидать по текстовым файлам, - будем думать, как это реализовать в виде кода. А с кодировкой потом что-нибудь придумаем. |
|
![]() |
![]() |
![]() |
#5 |
Старожил
Регистрация: 02.05.2009
Сообщений: 3,907
|
![]()
Вам нужна замкнутая область.
Второй вопрос относиться к векторной геометрии. Проще этот вопрос решить средствами Автокада Установить Автокад,лучше 2008 Пишеться макрос на Lisp для формирования полилинии по данным из текстового файла,подобная задача расматриваеться здесь http://www.caduser.ru/forum/index.ph...ID=23&TID=8405 Получится замкнутая область,не трудно будет определить ,куда относиться заданная точта. Из Автокада есть возможность вывода в Excell
Анализ,обработка данных Недорого
|
![]() |
![]() |
![]() |
#6 | |||
Пользователь
Регистрация: 16.08.2009
Сообщений: 11
|
![]() Цитата:
те точки что я привел, это треугольник где-то в карелии (потом я расширю его до размеров республики) Цитата:
вот код из программы: В Форме... Код:
Код:
Код:
Цитата:
![]() Последний раз редактировалось Maxximus; 17.08.2009 в 00:43. Причина: добавил файл |
|||
![]() |
![]() |
![]() |
#7 | ||
Пользователь
Регистрация: 16.08.2009
Сообщений: 11
|
![]() Цитата:
Нашел легкий на мой взгляд алгоритм проверки попадания точки в область: Цитата:
|
||
![]() |
![]() |
![]() |
#8 |
Форумчанин
Регистрация: 17.07.2009
Сообщений: 519
|
![]()
Maxximus, я в своё время использовал другой способ определения принадлежности точки региону. Он требует довольно значительной подготовки, но потом работает очень быстро.
1.Берём растровую карту высокого (достаточного) разрешения. 2.Раскрашиваем все регионы в разные цвета. 3.Формируем байтовый массив по растру с цветом/индексом региона 4.Пишем функцию переводящую географические координаты в адрес точки нашего растра. Посмотрите любой справочник по картографии ... 5.По координатам выбираем элемент нашей матрицы и сразу имеем индекс региона. Кстати, матрицу можно при желании реализовать как внешний бинарный файл с прямым доступом. |
![]() |
![]() |
![]() |
#9 |
Пользователь
Регистрация: 16.08.2009
Сообщений: 11
|
![]()
Aent а попроще никак нельзя, к сожалению не сильно продвинут в VBA? да и высшая математика изучалась давно, но постараюсь быть прилежным учеником. Решение конечно оригинальное и мне очень нравится, вот если бы Вы помогли исходниками я бы разобрался что да как. спасибо.
Программа моя будет работать для всех автомобилистов страны, предупреждая их об опасностях в их GPS. Так, что помогая мне вы помогаете многим людям. Последний раз редактировалось Maxximus; 18.08.2009 в 23:33. |
![]() |
![]() |
![]() |
#10 | |
Форумчанин
Регистрация: 17.07.2009
Сообщений: 519
|
![]() Цитата:
|
|
![]() |
![]() |
![]() |
|
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Еще один массив.. Но интересный :) | Наталья Ивановна | Microsoft Office Excel | 8 | 27.05.2009 23:10 |
Кодировка UCS-2 | nimf | Общие вопросы Delphi | 1 | 21.01.2009 12:44 |
кодировка UTF-8 | nimf | Общие вопросы Delphi | 4 | 18.01.2009 19:25 |
UTF-8 кодировка | OrdJONY | Общие вопросы Delphi | 2 | 23.03.2008 16:56 |
Еще один вопрос с SQL-ом | фЁдОр | БД в Delphi | 27 | 22.10.2007 12:42 |