Ответ: Просьба к программистам
А если в файле А Z>0, что писать в C?
Ответ: Просьба к программистам
Цитата:
Сообщение от
DogEater
А если в файле А Z>0, что писать в C?
В файле A не может быть Z>0, так как это файл глубин (в том числе рек и ручьёв), и все значения Z там меняются от отрицательных до 0. Так же, как в файле B не может быть отрицательных значений (это файл высот и там значение Z колеблется от 0 до положительных значений).
Но если я и там налажаю - а я могу! :D - то было бы неплохо, чтобы программа об этом оповещала, записывала в файл C Z=0, и отдельным файлом записывала номер строки и саму строку.
Буду тогда смотреть, где же я в ландшафтере налажал... :ups:
Ответ: Просьба к программистам
Проще было бы выложить примеры файлов.
Ответ: Просьба к программистам
Скриптик в целом готов, часов в 19 я его откомпилирую его в ActivePerl и выложу сюда.
А можно пример данных для тестового прогона?
Вложений: 1
Ответ: Просьба к программистам
Вот простенький файл у острова 256*256. Нужна ли пара с файлами высот и глубин?
Ответ: Просьба к программистам
Понял, нужна... сейчас сделаю.
Вложений: 1
Ответ: Просьба к программистам
Вложений: 1
Ответ: Просьба к программистам
использование: diffalt.exe <fileA> <fileB>
в том же каталоге пишется файл результатов result.XXX.txt где XXX - номер процесса, сделано для того что бы избежать перезаписывания.
в случае возникновения ошибок они записываются в файл error.XXX.txt, ult где XXX - номер процесса.
формат файла ошибок: номер строки с ошибкой:имя файла:строка содержавшая ошибку целиком
Если размер файла ошибок равен нулю - значит ошибок не было.
При работе утилита выдаёт номер обработанной строки в стандартный вывод для контроля исполнения.
Ответ: Просьба к программистам
Кстати не описано что делать, если (A)Z<0 и B(Z)>0.
Смотрим на Line # 23762.
2DogEater. В этом случае ты записал 0, хотя (A)Z = -0.0001 (т.е. больше похоже на 0), и в этом случае нужно писать 1 из B.
Ответ: Просьба к программистам
Цитата:
Сообщение от
f45f
Кстати не описано что делать, если (A)Z<0 и B(Z)>0.
Смотрим на Line # 23762.
Это в каком файле? А или B? У меня
Раз не описано, то обрабатываем по умолчанию как ошибку и пишем 0 в файл С.
Если заказчик опишет что делать в таком случае - сделаем.
Цитата:
Сообщение от
f45f
2DogEater. В этом случае ты записал 0, хотя (A)Z = -0.0001 (т.е. больше похоже на 0), и в этом случае нужно писать 1 из B.
Если заказчик укажет необходимость такого сравнения(и точность округления) - сделаем.
Ответ: Просьба к программистам
Цитата:
Сообщение от
DogEater
...diffalt.exe <fileA> <fileB>...
Спасибо, всё работает отлично! :)
Живой анекдот: вот после этой операции, как оказалось, я уже не могу посмотреть результат в той же программе, что сделала исходные два файла... она этот формат только пишет, но не читает! :lol:
Ладно, всё равно там вся работа через... не скажу как... но визуализация лишь на предпоследнем шаге, и тоже в аналоговом режиме, а не в цифре...
Спасибо! :)
Что написать в благодарностях?
Ответ: Просьба к программистам
Цитата:
Сообщение от
f45f
Кстати не описано что делать, если (A)Z<0 и B(Z)>0...
Писать из второго, но писать с ошибкой, ибо по определению (A)Z≤0 и B(Z)≥0.
Цитата:
Сообщение от
f45f
...Смотрим на Line # 23762.
2DogEater. В этом случае ты записал 0, хотя (A)Z = -0.0001 (т.е. больше похоже на 0), и в этом случае нужно писать 1 из B.
У меня в файлах A и B эти строки таковы:
0.6328 -0.2813 -1.0035
0.6328 -0.2813 0.0000
Итоговая строка верна:
0.6328 -0.2813 -1.0035
Ответ: Просьба к программистам
Цитата:
Сообщение от
CoValent
Писать из второго, но писать с ошибкой, ибо по определению (A)Z≤0 и B(Z)≥0.
Стоп, не понял. Так делать доп. обработку это случая или нет?
Ответ: Просьба к программистам
Цитата:
Сообщение от
DogEater
Стоп, не понял. Так делать доп. обработку это случая или нет?
Скорее, проверку этих случаев и такое же вынесение в отдельный файлик.
Там действительно в первом случае всегда должно быть меньше или равно 0 и во втором только больше или равно 0 же.
Так что если не сложно... :ups:
Вложений: 1
Ответ: Просьба к программистам
Для варианта (A)Z≤0 и B(Z)≥0 запись в файл С из файла B плюс запись в ошибку обоих значений.
Так?
Кстати таких набралось строк около 800.
Ответ: Просьба к программистам
Спасибо! :)
Там и должно было быть так - я чуть заехал "на море", когда слепил "сушу". :)
Ответ: Просьба к программистам
Ну и прекрасно!
Нехай потопчут нашу рідну Гавайщіну! :)