Здравствуйте!
Есть список значений, например
1001
1002
1003
...
Есть файл, пусть будет "настройки.txt"
Первоначально в этом файле есть подстрока "alien".
Есть цикл, в котором в файле "настройки.txt" отдельный параметр в каждой итерации должен последовательно принимать значения из списка: 1001, 1002, 1003,...
Первоначально я в это значение вручную записываю "alien" (просто известная мне подстрока).
При первой итерации alien благополучно меняется на 1001.
При второй итерации 1001 НЕ меняется на 1002.
Результат выполнения функции _ReplaceStringInFile() = 0 (Т.е., не "-1", не ошибка, а просто произведено 0 замен). Строка 1001 в файле есть, я вижу её глазами. И StringInStr() тоже видит.
--
В порядке бреда в голове возникло предположение, что после замены alien на 1001 курсор перемещается на "после" 1001 и поэтому не находится такое значение. Бредово, да, но других идей нет.
Поэтому перед _ReplaceStringInFile() родилось вот это:
$hFile=FileOpen($sFileName,1)
FileSetPos($hFile,0,0)
FileClose($hFile)
Ожидаемо не помогло. _ReplaceStringInFile() всё равно возвращает 0 замен.
Кто-нибудь сталкивался с такой проблемой? Куда поплясать с бубном?
------
Такая же беда с функцией StringReplace().
Т.е., алгоритм
- считать в строку содержимое из "настройки.txt"
- в строке заменить 1001 на 1002
- удалить файл "настройки.txt"
- создать новый файл "настройки.txt" и записать туда строку
не работает.
При первой итерации alien меняется на 1001.
При второй итерации 1001 не меняется на 1002.
Результат - всё те же 0 замен.
При этом StringInStr() благополучно находит 1001 в строке.
-----------------
Следующая мелькнувшая мысля - значения из списка (который в Excel) вставляются как-то коряво. Но нет, на скрине видно, что и в первоначальном файле, и в изменённом одинаковые кавычки-скобочки вокруг значений.
Магия какая-то. Злобная.
Помогите, пожалуйста)
Есть список значений, например
1001
1002
1003
...
Есть файл, пусть будет "настройки.txt"
Первоначально в этом файле есть подстрока "alien".
Есть цикл, в котором в файле "настройки.txt" отдельный параметр в каждой итерации должен последовательно принимать значения из списка: 1001, 1002, 1003,...
Первоначально я в это значение вручную записываю "alien" (просто известная мне подстрока).
При первой итерации alien благополучно меняется на 1001.
При второй итерации 1001 НЕ меняется на 1002.
Результат выполнения функции _ReplaceStringInFile() = 0 (Т.е., не "-1", не ошибка, а просто произведено 0 замен). Строка 1001 в файле есть, я вижу её глазами. И StringInStr() тоже видит.
--
В порядке бреда в голове возникло предположение, что после замены alien на 1001 курсор перемещается на "после" 1001 и поэтому не находится такое значение. Бредово, да, но других идей нет.
Поэтому перед _ReplaceStringInFile() родилось вот это:
$hFile=FileOpen($sFileName,1)
FileSetPos($hFile,0,0)
FileClose($hFile)
Ожидаемо не помогло. _ReplaceStringInFile() всё равно возвращает 0 замен.
Кто-нибудь сталкивался с такой проблемой? Куда поплясать с бубном?
------
Такая же беда с функцией StringReplace().
Т.е., алгоритм
- считать в строку содержимое из "настройки.txt"
- в строке заменить 1001 на 1002
- удалить файл "настройки.txt"
- создать новый файл "настройки.txt" и записать туда строку
не работает.
При первой итерации alien меняется на 1001.
При второй итерации 1001 не меняется на 1002.
Результат - всё те же 0 замен.
При этом StringInStr() благополучно находит 1001 в строке.
-----------------
Следующая мелькнувшая мысля - значения из списка (который в Excel) вставляются как-то коряво. Но нет, на скрине видно, что и в первоначальном файле, и в изменённом одинаковые кавычки-скобочки вокруг значений.
Магия какая-то. Злобная.
Помогите, пожалуйста)