Не сравниваются две, казалось бы, одинаковые строки.

Автор Massaraksh7, 23 февраля 2025, 06:04

0 Пользователи и 1 гость просматривают эту тему.

Massaraksh7

Читаю строку из файла, там должны быть символы "@@@", сравниваю со строкой-константой "@@@", происходит переход по несравнению. Причём, длина строки не 3, а 4 символа. Как убрать лишние символы из строки? Можно, наверное Mid использовать, но нет ли более изящного способа?

sokol92

#1
Нужно понять, что это за 4-й символ.
Согласно документации, метод readLine возвращает текст без CR (U+000D), LF (U+000A).
Владимир.

Massaraksh7

Цитата: sokol92 от 23 февраля 2025, 14:29Нужно понять, что это за 4-й символ.
Проверил.
Цитата: sokol92 от 23 февраля 2025, 14:29Согласно документации, метод readLine возвращает текст без CR (U+000D), LF (U+000A).
Тем не менее, 4 символ имеет код=10

sokol92

Выгрузите, пожалуйста, входной файл и код макроса, которые вызывают проблемную ситуацию.
Владимир.

Massaraksh7

#4
Хорошо, но чуть попозже.
P.S.: Да, я не сказал, что это Linux (AstraLinux), на Windows всё работает замечательно.

sokol92

#5
Проверим на "Астре".

Update.
При чтении в Linux файла, подготовленного в Windows, теоретически могут возникнуть проблемы, связанные с различными соглашениями о символах начала новой строки.
Можно после вызова метода readLine "подстраховаться" так:

s=Right(sInputLine, 1)
If s=Chr(10) Or s=Chr(13) Then sInputLine=Left(sInputLine, Len(sInputLine)-1)
Владимир.

mikekaganski

С уважением,
Михаил Каганский

Massaraksh7