Вверх ↑
Этот топик читают: Гость
Разработчик
Ответов: 26163
Рейтинг: 2127
#61: 2008-12-29 14:26:10 ЛС | профиль | цитата
Dilma, чего молчишь, чего делать-то будем, текущий вариант кодогенератора оставляет желать лучшего Не вижу рецензию на предложенный мной код.
карма: 22

0
Администрация
Ответов: 15295
Рейтинг: 1519
#62: 2008-12-29 15:01:12 ЛС | профиль | цитата
nesco писал(а):
Кажется, я нашел решение.

оригинал однако Это не будет работать при трех и более пустых строк. Впрочем если провести экстраполяцию этих вариантов на N последовательностей пустых строк, то мы получим верный алгоритм для произвольного числа последовательностей \r\n и \n\r. Но проблема с пониманием того, в какой нотации записан символ остается. Положим я где-то в порт COM слал данные hello\rword, где \r у меня означало код #10. Теперь загрузив в новой среде мы получаем вот тут

#pas
else if s[i] = 'r' then t := t + #13
код \r теперь 13...
карма: 27
0
Разработчик
Ответов: 26163
Рейтинг: 2127
#63: 2008-12-29 15:59:22 ЛС | профиль | цитата
Dilma писал(а):
Это не будет работать при трех и более пустых строк

Странно, почему

Три пустые последовательности, предположим


после первой замены датут #13#10#13#10
, парная замена должна заменить нечетную пару
на #13#10.
карма: 22

0
Ответов: 8930
Рейтинг: 823
#64: 2008-12-29 16:04:07 ЛС | профиль | цитата
Dilma, мне, к примеру, без разницы в каком порядке расположены в HiAsm эти 'знаки препинания'; если установлен стандарт на них, можно было бы в затылке чесать, а только из-за того, чтобы "ездить как все" покупать трамвай не нужно Пусть остаётся.
карма: 19

0
Разработчик
Ответов: 26163
Рейтинг: 2127
#65: 2008-12-29 16:07:58 ЛС | профиль | цитата
Dilma, прнципиально проверил три пары -- работает нормально
------------ Дoбавленo:

Леонид писал(а):
а только из-за того, чтобы "ездить как все" покупать трамвай не нужно

А вот Tad хочет "ездить как все"
карма: 22

0
Ответов: 16884
Рейтинг: 1239
#66: 2008-12-29 16:24:14 ЛС | профиль | цитата
nesco, страдает связь с внешним миром - весь внешний мир с DOS и до 2009 года ездит на
(#13#10) и KOL кстати тоже.
Потому что так принято. Возможно, что познакомившись с HiAsm все програмисты мира перейдут на
. Но верится с трудом.
Если можно говорить глаза в глаза, то переводчик ни на... не нужен.
nesco писал(а):
А вот Tad хочет "ездить как все"
Ага, а не задом на перёд.

карма: 25
Немного терпения! Дежурный экстрасенс скоро свяжется с Вами!
0
Разработчик
Ответов: 26163
Рейтинг: 2127
#67: 2008-12-29 16:33:00 ЛС | профиль | цитата
Dilma писал(а):
Теперь загрузив в новой среде мы получаем вот тут

Мда, нефига это нормально не работает, а вот так работает все


      else if s[i] = 'n' then t := t + #13
else if s[i] = 'r' then t := t + #10
карма: 22

0
Ответов: 16884
Рейтинг: 1239
#68: 2008-12-29 17:22:54 ЛС | профиль | цитата
Tad писал(а):
еще где-то в среде определено, что \n это #13
или наоборот, что #13 это \n
------------ Дoбавленo:

nesco, смотрел CodeGen.Modules

               'r':
begin
Token := Token + #13;
inc(LPos,2);
continue;
end;
'n':
begin
Token := Token + #10;
inc(LPos,2);
continue;
end;
------------ Дoбавленo:

Dilma писал(а):
Это не будет работать при трех и более пустых строк

и не забывайте, что три (и больше) пустые строки я могу получить и так
\r\r\r\n ( #13#13#13#10 )
карма: 25
Немного терпения! Дежурный экстрасенс скоро свяжется с Вами!
0
Администрация
Ответов: 15295
Рейтинг: 1519
#69: 2008-12-29 18:47:52 ЛС | профиль | цитата
nesco писал(а):
предположим


после первой замены датут #13#10#13#10




- что даст?

nesco, в общем предлагаю оставить эти попытки - без понимая версии файла сделать корректную конвертацию не возможно. Поэтому предлагаю думать в направление того, как отличить старые файлы от новых(один из вариантов уже дан - по времени).

Обсуждать нужность или ненужность исправления казуса с
считаю тоже занятием бесполезным - нужно.
карма: 27
0
Разработчик
Ответов: 26163
Рейтинг: 2127
#70: 2008-12-29 19:00:04 ЛС | профиль | цитата
Dilma писал(а):
как отличить старые файлы от новых

Структуру фалов старых и новых кроме тебя никто лучше не знает
карма: 22

0
Администрация
Ответов: 15295
Рейтинг: 1519
#71: 2008-12-29 19:02:04 ЛС | профиль | цитата
nesco писал(а):
Структуру фалов старых и новых кроме тебя никто лучше не знает

а чего там знать-то она текстовая и не менялась года три уже. Вообще я думаю имеет смысл завести новое обязательное поле - версию HiAsm. С самого начала надо было его добавить...
карма: 27
0
Ответов: 3655
Рейтинг: 69
#72: 2008-12-29 19:03:54 ЛС | профиль | цитата
Tad писал(а):
отвлекись и послушай арабскую песню

Интестно что же всё таки это значит в переводе

карма: 0

0
Ответов: 16884
Рейтинг: 1239
#73: 2008-12-29 19:18:32 ЛС | профиль | цитата
Dilma, я все ж таки остаюсь при своем мнении - не нужно в среду толкать конвертацию старых в новые.

Исправить можно по такому алгоритму вручную:
1. Открыл старый файл в блокноте
2. Заменил оптом все, например,
на "+=%999" ( на заведомую муть)
3. Заменить на

4/ Заменить муть на

Или, если уж очень хочется, то сделать отдельную програмку по этому принципу и свободно можно перегонять, от нечего делать, из старого в новый формат и обратно.
карма: 25
Немного терпения! Дежурный экстрасенс скоро свяжется с Вами!
0
Администрация
Ответов: 15295
Рейтинг: 1519
#74: 2008-12-29 19:38:28 ЛС | профиль | цитата
Tad, это работает только в том случае, когда пользователь вкурсе об изменениях в новой версии. А если не вкурсе? Он очень не сразу поймет, почему у него программа перестала верно работать. Хотя я конечно же тоже не сторонник таскания за собой старого мусора...
карма: 27
0
Разработчик
Ответов: 26163
Рейтинг: 2127
#75: 2008-12-29 19:45:05 ЛС | профиль | цитата
Dilma писал(а):
А если не вкурсе?

Отдельная закрытая от обсуждения тема по внесенному изменению, в начале форума, в разделе "Информация", должна решить проблему

Tad писал(а):
Или, если уж очень хочется, то сделать отдельную програмку по этому принципу

Во, займись оптовым конвертором, самое то
карма: 22

0
Сообщение
...
Прикрепленные файлы
(файлы не залиты)