Пользователь Михаил 2981 разместил новый ресурс: Конвертер TXT_TO_SDR - Преобразование файла из формата TXT в формат SDR Узнать больше об этом ресурсе...
Протестив программку, пришёл к выводу: разделитель между координатами должна быть табуляция. С Екселя прекрасно текстовик хавает.
И хорошо, что "не получается". Неверный подход в принципе. Верный подход: В электронной таблице (каталоге) на втором (3, 4, 5, ...) листе, с помощью текстовых функций (которых более чем достаточно) генерируются строки SDR-файла. С помощью "нормального" текстового редактора, например notepad++, данные строки вставляются в нужный SDR-файл. Пример генерации строки SDR-файла в gnumeric: A,B,C,D - столбцы с №, Y, X, H #ячейка Y =substitute(text(B1;"0,000");",";".";) #ячейка X =substitute(text(C1;"0,000");",";".";) #ячейка H =substitute(text(D1;"0,000");",";".";) #ячейка SDR =concatenate("08TP";rept(" ";16-len(#ячейка №т));#ячейка №т;#ячейка Y;rept(" ";16-len(#ячейка Y));#ячейка X;rept(" ";16-len(#ячейка X));#ячейка H;rept(" ";16-len(#ячейка H));rept(" ";16)) Для своих таблиц ищите соответствующие функции через справку.
Да я именно про использование... На мной скромный взгляд, программка бесполезная)))) Вот уважаемый Звездочет, даже в блокноте это делает) Я использую более универсальные программы. Которые и разные форматы обрабатывают, и в кад грузят и много чего еще умеют.
(defun c:sdr2txt ( / fcontent DataLine NumPt XCoord YCoord ZCoord MesurementCode Line2File) (setq fcontent (open (getfiled "Выберите файл" "D:\\" "sdr" 4) "r")) (setq DataLine (read-line fcontent)) (setq NewTxtFile (open "NewTxtFile.txt" "w")) (setq DerivationCode (substr DataLine 1 4)) (cond ( (= DerivationCode (or "08TP" "08KI")) (progn (Setq NumPt (substr DataLine 5 16) XCoord (substr DataLine 21 16) YCoord (substr DataLine 37 16) ZCoord (substr DataLine 53 16) MesurementCode (substr DataLine 69 16) Line2File (vl-string-left-trim " " (strcat NumPt XCoord YCoord ZCoord MesurementCode)) );setq (write-line Line2File NewTxtFile) );progn ) );cond2 (while (/= DataLine nil) (setq DataLine (read-line fcontent)) (cond ( (/= DataLine nil) (setq DerivationCode (substr DataLine 1 4)) (cond ( (= DerivationCode (or "08TP" "08KI")) (progn (Setq NumPt (substr DataLine 5 16) XCoord (substr DataLine 21 16) YCoord (substr DataLine 37 16) ZCoord (substr DataLine 53 16) MesurementCode (substr DataLine 69 16) Line2File (vl-string-left-trim " " (strcat NumPt XCoord YCoord ZCoord MesurementCode)) );setq (write-line Line2File NewTxtFile) );progn ) );cond2 ) );cond1 );while (close fcontent) (close NewTxtFile) )
Детский сад. Вместо того, чтобы давать людям что-то стоящее, подкладывать им лажу, и после этого: «Не хотите, не пользуйте». Грязновато работаете, товарищ.
Прога рабочая, иконку в быстрый запуск сделал. пару нажатий и файл sdr готов. На мой взгляд быстрее чем через Spectrum Link.
Согласен что все и так уже есть. Другой вопрос: создаю лиспом COORNB блоки с именами (отлично потом их в лейку DXF форматом напрямую), извлечением данных автокада получаю текстовый файл имя сев вост высота, открываю в Seditor, сохраняю как sdr. Все бы хорошо, но как сделать чтоб порядок точек получился как я в автокаде по очереди выбирал, а не по возрастанию/убыванию x или у или имени? Я для этого txt файл в кредо открываю, потом экспорт в форматы приборов тримбл 3600(вроде он чтоб с буквами имена читались), потом получившийся дат в ТГО открываю, еще раз точки выбираю по очереди в нужном мне порядке и экспорт в sdr. Все для того чтоб в соккии точки по порядку встали. Очень долго описывать, но по сути очень быстро сделать. И вот поменял комп с 32 на 64 бит и кредо 3.1 лицензия с ключом и ломаная 3.1 больше не поставить. На 3.04 (она встала) нет модуля экспорта в форматы приборов. Может кто подскажет способ создать SDR по порядку выбора. Надеюсь вопрос понятен.
Наверху смотрим. Там есть кнопка Ресурсы. Жмем на нее и ищем Geo Import/export (импорт/экспорт). Устанавливаем. Смотрим инструкцию, видео там тоже есть... И больше никогда не занимаемся этими танцами, которые вы тут описали. И в соккиа все будет в том порядке, как хочется.