Forth и другие саморасширяющиеся системы программирования Locations of visitors to this page
Текущее время: Вс янв 21, 2018 16:39

...
Google Search
Forth-FAQ Spy Grafic

Часовой пояс: UTC + 3 часа [ Летнее время ]




Начать новую тему Ответить на тему  [ Сообщений: 19 ]  На страницу 1, 2  След.
Автор Сообщение
 Заголовок сообщения: SREAD-LINE перестает видеть переводы строк
СообщениеДобавлено: Вс авг 02, 2015 15:59 
Не в сети

Зарегистрирован: Пн сен 10, 2007 16:48
Сообщения: 18
Благодарил (а): 1 раз.
Поблагодарили: 0 раз.
Всем доброго дня.

Столкнулся с тем что слово SREAD-LINE, с какого-то момента и по непонятным причинам перестает видеть символы перевода строк (crlf).
Задачка для воспроизведения проблемы:

Код:
#( CLASSIC-TASK-#-CRLF-Count
SingleInstance
Time: 28 14 * * * *
: CRLF-Count { \ countCRLF -- } ( a u -- )
  BEGIN
   SREAD-LINE
  WHILE
   2DROP
   countCRLF 1+ TO countCRLF
  REPEAT
  2DROP 2DROP
  S" Количество найденных строк: " countCRLF N>S S+ CRON-LOG
;
Action:
  S" c:\WINDOWS\Temp\TestFile2.txt" FILE \ 180000 строк, находит 13839
  CRLF-Count
  S" c:\WINDOWS\Temp\TestFile.txt" FILE \ 180000 строк, находит 13817
  CRLF-Count
)#

В логе появляется две строки:
Код:
2015 02 Aug 14:28:00 4816- Количество найденных строк: 13839
2015 02 Aug 14:28:00 4816- Количество найденных строк: 13817

Файлы TestFile.txt и TestFile2.txt можно взять тут, либо сделать самим по аналогии.
Воспроизведение 100% на 2х машинах с XP и Win7.

Само слово SREAD-LINE несложное, нашел в исходниках в файле ../cron\install.f
Код:
: SREAD-LINE ( a u -- a1 u1 a2 u2 ?)
    DUP
    IF
        2DUP CRLF SEARCH 0=
        IF 2DROP 2DUP + 0 2SWAP
        ELSE
            2DUP 2>R NIP - 2R> 2 /STRING 2SWAP
        THEN
        TRUE
    ELSE 2DUP FALSE THEN
;

и подозреваю что корни проблемы уходят к SEARCH, которое тоже есть в исходниках в файле ..\SPF3_75\Src\spf314.f (исходники SPF 3.75)

Код:
CODE SEARCH ( c-addr1 u1 c-addr2 u2 -- c-addr3 u3 flag ) \ 94 STRING
\ Произвести поиск в строке, заданной c-addr1 u1, строки, заданной c-addr2 u2.
\ Если флаг "истина", совпадение найдено по адресу c-addr3 с оставшимися u3
\ символами. Если флаг "ложь", совпадения не найдено, и c-addr3 есть c-addr1,
\ и u3 есть u1.
      PUSH EDI
      CLD
      MOV EBX,   [EBP]
      OR EBX, EBX
      JZ @@5
      MOV EDX, 8 [EBP]
      MOV EDI, 0C [EBP]
      ADD EDX, EDI
@@4:  MOV ESI, 4 [EBP]
      LODS BYTE
      MOV ECX, EDX
      SUB ECX, EDI
      JCXZ @@1
      REPNZ SCAS BYTE
      JNZ @@1   \ во всей строке нет первого символа искомой строки
      CMP EBX, # 1
      JZ @@2   \ искомая строка имела длину 1 и найдена
      MOV ECX, EBX
      DEC ECX
      MOV EAX, EDX
      SUB EAX, EDI
      CMP EAX, ECX
      JC @@1  \ остаток строки короче искомой строки
      PUSH EDI
      REPZ CMPS BYTE
      POP EDI
      JNZ @@4
@@2:  DEC EDI           \ нашли полное совпадение
      SUB EDX, EDI
      MOV 0C [EBP], EDI
      MOV  8 [EBP], EDX
@@5:  MOV EAX, # -1
      JMP @@3
@@1:  XOR EAX, EAX
@@3:  ADD EBP, # 4
      MOV [EBP], EAX
      POP EDI
      RET
END-CODE

Но поскольку мои познания ассемблера чуть больше чем равны нулю, то капнуть глубже уже не могу.

На всякий случай привожу определение слова /STRING из ..\SPF3_75\INCLUDE\STRING.F
Код:
: /STRING ( c-addr1 u n -- c-addr2 u2 ) \ 94 STRING
\ Укоротить строку символов по адресу c-addr1 на n символов. Результирующая
\ строка символов, заданная c-addr2 u2, начинается с c-addr1 плюс n символов и
\ длиной u1 минус n символов.
  >R R@ - SWAP R> + SWAP
;


и слова CRLF из ..\nnLib\lib\subst1.f

Код:
CREATE <CRLF> 13 C, 10 C,
: CRLF <CRLF> 2 ;


Прошу попробовать воспроизвести у себя и если проблема не во мне, то объяснить почему так происходит и как добиться нормальной работы этого слова.

_________________
все познается в сравнении


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения: Re: SREAD-LINE перестает видеть переводы строк
СообщениеДобавлено: Вс авг 02, 2015 16:58 
Не в сети
Аватара пользователя

Зарегистрирован: Чт дек 31, 2009 18:36
Сообщения: 2051
Откуда: Питер
Благодарил (а): 15 раз.
Поблагодарили: 33 раз.
Ну, как бы, приведенные Вами листинги не позволяют утверждать, что ошибка именно там, где Вы ее ищете. Она может быть и в считывании (буферизации) файла, и в необнулении/переполнении переменных, и в форматировании ответа. (Наводит на мысли: 2 в 16-й примерно равно числу-строк минус ответ).

И, в общем-то, по официальному местному мнению, FORTH позволяет локализовать ошибку гораздо точнее.

_________________
Когда я говорю "понимаю" - это не значит, что я согласен, не значит, что я понимаю и вообще не значит, что я слушаю тебя. /Чарли, "2 1/2 человека"/


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения: Re: SREAD-LINE перестает видеть переводы строк
СообщениеДобавлено: Вс авг 02, 2015 19:34 
Не в сети
Administrator
Administrator
Аватара пользователя

Зарегистрирован: Вт май 02, 2006 22:48
Сообщения: 6149
Благодарил (а): 14 раз.
Поблагодарили: 96 раз.
А не пропускает ли он только пустые строки (в которых только CRLF)? Что он посчитает для файла, у которого в одной строке один символ, в другой ничего, а в третьей - символ, но нет CRLF?


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения: Re: SREAD-LINE перестает видеть переводы строк
СообщениеДобавлено: Пн авг 03, 2015 00:22 
Не в сети
Аватара пользователя

Зарегистрирован: Вт мар 20, 2007 23:39
Сообщения: 1252
Благодарил (а): 3 раз.
Поблагодарили: 16 раз.
Для начала надо убедиться, что все переводы строк виндовые, а юниксовые.
Во-вторых: для работы со строками есть отличный плагин read-by-line.spf.
А в третьих, если надо просто подсчитать количество строк в файле, то надо просто использовать цикл с SEARCH и счетчиком.

_________________
Cтоимость сопровождения программного обеспечения пропорциональна квадрату творческих способностей программиста.
Роберт Д. Блисc


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения: Re: SREAD-LINE перестает видеть переводы строк
СообщениеДобавлено: Пн авг 03, 2015 14:41 
Не в сети

Зарегистрирован: Пн сен 10, 2007 16:48
Сообщения: 18
Благодарил (а): 1 раз.
Поблагодарили: 0 раз.
Спасибо всем откликнувшимся.

Коллеги, обращаю ваше внимание, что первое что я прошу - проверить воспроизводится ли у вас данная проблема.
VoidVolker, думаю тебе это будет точно не сложно, т.к. крон у тебя, по идее, должен стоять.
Просьба по прежнему в силе ;)


gudleifr, листинг тестовой задачи я привел для упрощения и "стандартизации" проверки воспроизводимости данной проблемы. Листинги слов - для того что бы облегчить Вам оказание мне помощи.
Все источники возникновения данной проблемы я, насколько мне позволяют мои знания, уже отсеял, и локализовал как смог - дальше сам не могу, поэтому и обращаюсь за помощью к тем кто в этом лучше меня разбирается.

Hishnik, из моей, далеко не разовой практики использования этого слова, оно вполне корректно делает то, что требуется - за каждый проход выдает au-строку между двумя символами перевода строк. Если между двумя символами перевода строк нет других символов, то au-строка будет нулевой длины.

VoidVolker.
1. Все переводы строки в обоих тестовых файлах - виндовые. Оба файла сгенерированы специально для локализации данной ошибки - каждая строка представляет собой результат от
Код:
1000000 RANDOM N>S

2. Да, плагин отличный, но постепенно перешел от построкового чтения из файла к построковому чтению из памяти (если объем свободной оперативки позволяет)
3. Нет, нужна обработка каждой полученной строки.

_________________
все познается в сравнении


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения: Re: SREAD-LINE перестает видеть переводы строк
СообщениеДобавлено: Пн авг 03, 2015 15:07 
Не в сети
Аватара пользователя

Зарегистрирован: Чт дек 31, 2009 18:36
Сообщения: 2051
Откуда: Питер
Благодарил (а): 15 раз.
Поблагодарили: 33 раз.
makrus писал(а):
Все источники возникновения данной проблемы я, насколько мне позволяют мои знания, уже отсеял
Значит, начинаем с нуля:
0. Обнуляются ли локальные переменные?
1. Выводит ли в принципе Ваша процедура вывода число 80000?
2. Открывается ли вообще файл для чтения?
3. Какая строка считывается из файла последней?
4. Что будет, если считать каждую десятую строку?
Не потому "это все раньше нормально работало", а тупо вбить контрольные выводы!

_________________
Когда я говорю "понимаю" - это не значит, что я согласен, не значит, что я понимаю и вообще не значит, что я слушаю тебя. /Чарли, "2 1/2 человека"/


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения: Re: SREAD-LINE перестает видеть переводы строк
СообщениеДобавлено: Пн авг 03, 2015 17:08 
Не в сети
Аватара пользователя

Зарегистрирован: Вт мар 20, 2007 23:39
Сообщения: 1252
Благодарил (а): 3 раз.
Поблагодарили: 16 раз.
makrus писал(а):
Все переводы строки в обоих тестовых файлах - виндовые. Оба файла сгенерированы специально для локализации данной ошибки - каждая строка представляет собой результат от
Код:
1000000 RANDOM N>S


А откуда тогда уверенность в том, что в этом файле с рандомным набором чисел именно 18000 строк и именно с 0x0D0A? И откуда там вообще возмутся переводы строк, если содержимое одни только числа диапазона 48-57?
Код:
0 VALUE buf
18000 2* VALUE /buf
: crlfCounterTest
    /buf CELL+ ALLOCATE THROW TO buf
   
    buf /buf + buf DO
        0x0D I C!
        0x0A I 1+ C!
    2 +LOOP
   
    buf /buf S" C:\crlf.txt" FWRITE
   
    0
    S" C:\crlf.txt" FILE OVER + SWAP DO
        I C@ 0x0D =
        I 1+ C@ 0x0A = AND IF 1+ THEN
    LOOP
   
    ." 0x0D0A counted: " . CR
;

Код:
crlfCounterTest
0x0D0A counted: 18000

Код:
S" C:\crlf.txt" FILE CRLF-Count
16:10:37 1932 Количество найденных строк: 18000

_________________
Cтоимость сопровождения программного обеспечения пропорциональна квадрату творческих способностей программиста.
Роберт Д. Блисc


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения: Re: SREAD-LINE перестает видеть переводы строк
СообщениеДобавлено: Вт авг 04, 2015 02:11 
Не в сети

Зарегистрирован: Пн сен 10, 2007 16:48
Сообщения: 18
Благодарил (а): 1 раз.
Поблагодарили: 0 раз.
Мне уже становится интересно, кто же будет ТОТ, кто первым ответит на мой первый вопрос - воспроизводится или нет? :D

gudleifr
0. Про какие локальные переменные идет речь, кроме как в слове CRLF-Count они вроде нигде не используются, а в этом слове она одна и нужна для подсчета. Если намек на повторное использование этого слова в пределах одной задачи, то насколько я знаю, при повторном вызове одного слова они "обнуляются" (а фактически каждый вызов слова работает со своими локальными переменными), но в конкретно данном случае - это не важно, т.к. при своих первоначальных тестах этой задачи, я за каждый запуск задачи обрабатывал только один файл, результаты были те же.

1. Что подразумевается под "моей процедурой вывода"?
Что выведет строка S" Количество найденных строк: " 80000 N>S S+ CRON-LOG ?
Проверил, вывела 2015 04 Aug 00:11:03 14292- Количество найденных строк: 80000
Все в порядке?

2. Открывается, после прочтения файла в память его последующее сохранение в другой файл дает полную копию прочитанного

3. Строка №13817 в файле "TestFile.txt" содержит строку "243154"
Строка №13839 в файле "TestFile2.txt" содержит строку "693725"

4. Завтра, ну т.е. сегодня ;) , но по-позже доработаю задачку, проверю.
Просьба сразу сообщить кратность каким числам еще надо будет проверять?


VoidVolker
Цитата:
А откуда тогда уверенность в том, что в этом файле с рандомным набором чисел именно 18000 строк и именно с 0x0D0A? И откуда там вообще возмутся переводы строк, если содержимое одни только числа диапазона 48-57?
По-моему ты торопишься!!! Давай начнем с самого начала - откуда вообще берется файл, да еще с 180 тыс. строк, если показана одна строка без какого-либо сохранения в файл?! ;)
Ну, а если серьезно, то я же говорил, что эти файлы созданы специально, специально добавлены в конце каждой строки виндовые переводы строк, после этого строка сохранялась в файл и таким образом в этих файлах содержится по 180 тыс. строк.

Цитата:
...только числа диапазона 48-57
что это значит - не понял :shuffle;

О, код! :)
Проверил у себя, результат тот же - 18 тыс. строк.
Попробуй увеличить их количество в 6 раз (объем прочитанных строк, как мне кажется, каким-то образом влияет на их максимальное количество). Я сделал это, в твоем слове, вот так:
Код:
18000 6 * 2* VALUE /buf
и получил следующий результат
Код:
2015 04 Aug 00:41:00 15624- Количество найденных строк: 9697

Переполнение счетчика?

_________________
все познается в сравнении


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения: Re: SREAD-LINE перестает видеть переводы строк
СообщениеДобавлено: Вт авг 04, 2015 08:38 
Не в сети
Аватара пользователя

Зарегистрирован: Вт мар 20, 2007 23:39
Сообщения: 1252
Благодарил (а): 3 раз.
Поблагодарили: 16 раз.
makrus писал(а):
По-моему ты торопишься!!! Давай начнем с самого начала - откуда вообще берется файл, да еще с 180 тыс. строк, если показана одна строка без какого-либо сохранения в файл?! Ну, а если серьезно, то я же говорил, что эти файлы созданы специально, специально добавлены в конце каждой строки виндовые переводы строк, после этого строка сохранялась в файл и таким образом в этих файлах содержится по 180 тыс. строк.

Предлагаю немножко распутать узелок логики.
1. Создается некий файл, при этом утверждается, что его содержимое известно со 100% точностью.
2. Файл считывается и проверяется его содержимое (код 2).
3. Результат не соответствует ожиданиям.
Так? Так. Так вот. Я сделал то же самое - код выше. И проверил каждый этап. На файле из моего кода (код 2) результат проверки содержимого совпадает в обоих случаях (два разных кода - а результат один). Какой из этого можно сделать вывод? Файл создается невалидным. Следовательно, надо проверять код создания файла, а так же проверять содержимое файла третьим инструментом.
makrus писал(а):
что это значит - не понял

Код:
CHAR 0 .
48
CHAR 9 .
57

Т.е., код, вида
Код:
1000000 RANDOM N>S

Выдает строку с числами данного диапазона (с бинарной точки зрения на строку).

makrus писал(а):
Попробуй увеличить их количество в 6 раз (объем прочитанных строк, как мне кажется, каким-то образом влияет на их максимальное количество). Я сделал это, в твоем слове, вот так:
Код:
2015 04 Aug 00:41:00 15624- Количество найденных строк: 9697


А где второй результат? И где сам файл?
Код:
1800000 2* VALUE /buf
...
crlfCounterTest
0x0D0A counted: 1800000


makrus писал(а):
Переполнение счетчика?

Какого счетчика? Крон - 32 битный. Переполнение 32 битного счетчика происходит на числе 2147483647. Кроме того, крон может использовать числа двойной длины.

makrus писал(а):
Про какие локальные переменные идет речь, кроме как в слове CRLF-Count они вроде нигде не используются, а в этом слове она одна и нужна для подсчета. Если намек на повторное использование этого слова в пределах одной задачи, то насколько я знаю, при повторном вызове одного слова они "обнуляются" (а фактически каждый вызов слова работает со своими локальными переменными), но в конкретно данном случае - это не важно, т.к. при своих первоначальных тестах этой задачи, я за каждый запуск задачи обрабатывал только один файл, результаты были те же.

В СПФ (а значит в кроне) для локальных перменых используется стек возвратов и они всегда инициализируются нулем.

_________________
Cтоимость сопровождения программного обеспечения пропорциональна квадрату творческих способностей программиста.
Роберт Д. Блисc


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения: Re: SREAD-LINE перестает видеть переводы строк
СообщениеДобавлено: Вт авг 04, 2015 09:59 
Не в сети
Аватара пользователя

Зарегистрирован: Чт дек 31, 2009 18:36
Сообщения: 2051
Откуда: Питер
Благодарил (а): 15 раз.
Поблагодарили: 33 раз.
makrus писал(а):
т.к. при своих первоначальных тестах этой задачи, я за каждый запуск задачи обрабатывал только один файл, результаты были те же.

Это не важно, FORTH-специфика работы с памятью часто дает воспроизводимый мусор.
makrus писал(а):
Строка №13817 в файле "TestFile.txt" содержит строку "243154"
Строка №13839 в файле "TestFile2.txt" содержит строку "693725"
Это ваша программа выдала? Или в файле посмотрели? Размер "считанной части" примерно 100kb. Вроде, "ни о чем", тем более, Вы говорите, файл нормально влезает целиком. Что дает положение этой строки в памяти (относительно других блоков?).
makrus писал(а):
доработаю задачку, проверю.
Раз Вы подтвердили, что точная точка останова определена, уже не надо. Поиграть имеет смысл с другими размерами файлов. Например, не 80000, а только 40000. Другими числами - убрать по цифре из первого десятка-сотни слов.
P.S. Дело не в том, что мои "рецепты" к чему-то ведут, а к тому, что я пытаюсь Вас заставить посмотреть на код "с другой стороны". Проверяйте все, что придет в голову.

_________________
Когда я говорю "понимаю" - это не значит, что я согласен, не значит, что я понимаю и вообще не значит, что я слушаю тебя. /Чарли, "2 1/2 человека"/


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения: Re: SREAD-LINE перестает видеть переводы строк
СообщениеДобавлено: Вт авг 04, 2015 16:57 
Не в сети

Зарегистрирован: Пн сен 10, 2007 16:48
Сообщения: 18
Благодарил (а): 1 раз.
Поблагодарили: 0 раз.
VoidVolker
Цитата:
Я сделал то же самое - код выше.
Нет, твой код только считает найденные символы перевода строк, к данным между ними он доступа не предоставляет, а о том что он мне нужен - я говорил.
Цитата:
На файле из моего кода (код 2) результат проверки содержимого совпадает в обоих случаях (два разных кода - а результат один). Какой из этого можно сделать вывод? Файл создается невалидным.
Из этого можно сделать два вывода, оба про невалидность файла:
- твой вывод, что мои файлы невалидны
- мой вывод, что твой файл невалиден, потому что мне не нужен правильный файл что бы на нем SREAD-LINE работало нормально, мне надо, что бы это слово нормально работало на всех файлах, в том числе и на моих.

Я все никак не могу понять, что мешает тебе скачать два файлика, добавить в кронтаб задачу, подкорректировать пути к скаченным файлам, запустить ее и сообщить результат: совпадает с моим, не совпадает с моим но считает не все строки, считает все строки.
А уже после этого можно логически искать ошибку дальше: в файлах, в моих кронах, в SREAD-LINE или еще где...

А сейчас получается ты мне доказываешь что я неправильные файлы делаю, что на мой взгляд выглядит немного странно.
Касательно правильности файлов и проверки содержимого третьими инструментами - у меня таким инструментов выступает известный тебе SciTE. Открыв в нем оба эти файла, перейдя на последнюю строку слева я вижу его номер 180 000, перевод строки настроен виндовый.

Цитата:
Выдает строку с числами данного диапазона (с бинарной точки зрения на строку).
угу, теперь понял, что имелся ввиду диапазон кодов чисел, спс.

Цитата:
Какого счетчика? Крон - 32 битный. Переполнение 32 битного счетчика происходит на числе 2147483647. Кроме того, крон может использовать числа двойной длины.
Угу, все верно, но другого объяснения появления в логе этого числа я навскидку придумать не смог.



gudleifr
Цитата:
Это не важно, FORTH-специфика работы с памятью часто дает воспроизводимый мусор.
В данном случае важно, т.к. меняя файлы для запуска я комментировал одну строку и раскомментировал вторую с последующим сохранением кронтаба и, самое главное, перечитыванием кронтабов кроном, при этом обнуляются вообще ВСЕ переменные, не говоря уже об локальных.

Цитата:
Это ваша программа выдала? Или в файле посмотрели?
Нет, открыв в текстовом редакторе эти файлы и перейдя на соответствующие, по номеру, строки я скопировал их содержимое.
Цитата:
Что дает положение этой строки в памяти (относительно других блоков?).
Если я правильно понял суть этого вопроса, то скажу следующее - у меня есть неподтвержденные пока догадки, что переводы строк перестают видеться после прочтения определенного объема данных в строках. То что в этих двух файлах SREAD-LINE "слепнет" на разных по счету строках можно объяснить тем, что файлы с рандомной длиной строки и не все строки строго длиной 6 байт, есть и меньше.
Сделаю еще подобные файлы гарантированной длины в 6 байт и проверю на них - на каких по счету строках это слово будет "слепнуть".

Цитата:
Раз Вы подтвердили, что точная точка останова определена, уже не надо. Поиграть имеет смысл с другими размерами файлов. Например, не 80000, а только 40000. Другими числами - убрать по цифре из первого десятка-сотни слов.

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

_________________
все познается в сравнении


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения: Re: SREAD-LINE перестает видеть переводы строк
СообщениеДобавлено: Вт авг 04, 2015 17:31 
Не в сети
Аватара пользователя

Зарегистрирован: Чт дек 31, 2009 18:36
Сообщения: 2051
Откуда: Питер
Благодарил (а): 15 раз.
Поблагодарили: 33 раз.
makrus писал(а):
Нет, открыв в текстовом редакторе
Значит, никакой гарантии, что программа остановилась именно на этой строке, у нас нет. Нужно проверять. И, в случае неудачи - "каждый десятый".
makrus писал(а):
у меня есть неподтвержденные пока догадки, что переводы строк перестают видеться после прочтения определенного объема данных в строках.
Логично. Первая версия - что-то где-то переполняется.
makrus писал(а):
То что в этих двух файлах SREAD-LINE "слепнет" на разных по счету строках можно объяснить тем, что файлы с рандомной длиной строки и не все строки строго длиной 6 байт, есть и меньше.
Тоже логично.
makrus писал(а):
Боюсь, тут надо уже посмотреть на определение слова SEARCH с точки зрения использования им памяти при многократных (десятки тысяч) вызовах в цикле
Пока рано.

_________________
Когда я говорю "понимаю" - это не значит, что я согласен, не значит, что я понимаю и вообще не значит, что я слушаю тебя. /Чарли, "2 1/2 человека"/


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения: Re: SREAD-LINE перестает видеть переводы строк
СообщениеДобавлено: Вт авг 04, 2015 20:44 
Не в сети
Аватара пользователя

Зарегистрирован: Вт мар 20, 2007 23:39
Сообщения: 1252
Благодарил (а): 3 раз.
Поблагодарили: 16 раз.
makrus писал(а):
Я все никак не могу понять, что мешает тебе скачать два файлика, добавить в кронтаб задачу, подкорректировать пути к скаченным файлам, запустить ее и сообщить результат: совпадает с моим, не совпадает с моим но считает не все строки, считает все строки.

Дык а ссылка-то где на файлы? Давно бы уже скачал их.

_________________
Cтоимость сопровождения программного обеспечения пропорциональна квадрату творческих способностей программиста.
Роберт Д. Блисc


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения: Re: SREAD-LINE перестает видеть переводы строк
СообщениеДобавлено: Вт авг 04, 2015 21:26 
Не в сети

Зарегистрирован: Пн сен 10, 2007 16:48
Сообщения: 18
Благодарил (а): 1 раз.
Поблагодарили: 0 раз.
VoidVolker писал(а):
makrus писал(а):
Я все никак не могу понять, что мешает тебе скачать два файлика, добавить в кронтаб задачу, подкорректировать пути к скаченным файлам, запустить ее и сообщить результат: совпадает с моим, не совпадает с моим но считает не все строки, считает все строки.

Дык а ссылка-то где на файлы? Давно бы уже скачал их.

Да в первом же сообщении...
Цитата:
...
Файлы TestFile.txt и TestFile2.txt можно взять тут, либо сделать самим по аналогии.
Воспроизведение 100% на 2х машинах с XP и Win7.
...

"тут" ссылка на http://rghost.net/69hZMtdnc

_________________
все познается в сравнении


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения: Re: SREAD-LINE перестает видеть переводы строк
СообщениеДобавлено: Ср авг 05, 2015 12:02 
Не в сети
Аватара пользователя

Зарегистрирован: Вт мар 20, 2007 23:39
Сообщения: 1252
Благодарил (а): 3 раз.
Поблагодарили: 16 раз.
Ааа, так вот они где. Подчеркивания у ссылки нет - вот и не заметил.

_________________
Cтоимость сопровождения программного обеспечения пропорциональна квадрату творческих способностей программиста.
Роберт Д. Блисc


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 19 ]  На страницу 1, 2  След.

Часовой пояс: UTC + 3 часа [ Летнее время ]


Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 1


Вы не можете начинать темы
Вы можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
phpBB сборка от FladeX // Русская поддержка phpBB