|
Заменить строчку в файле на новую | ☑ | ||
---|---|---|---|---|
0
AugustBlack
07.12.11
✎
13:00
|
сабж....помогите чего-то туплю, ищу строчку которая содержит знак & нада заменить на & что не так:
Текст = Новый ТекстовыйДокумент; Текст.Прочитать(ФайлДанных); Для Номер = 1 По Текст.КоличествоСтрок() Цикл Строка = Текст.ПолучитьСтроку(Номер); Строка = СтрЗаменить(Строка, "&", "&"); КонецЦикла; Текст.Записать(ФайлДанных); |
|||
1
PCcomCat
07.12.11
✎
13:06
|
Текст = Новый ТекстовыйДокумент;
Текст.Прочитать(ФайлДанных); Для Номер = 1 По Текст.КоличествоСтрок() Цикл СтрокаТекста = Текст.ПолучитьСтроку(Номер); СтрокаТекста = СтрЗаменить(СтрокаТекста , "&", "&"); Текст.ВставитьСтроку(Номер, СтрокаТекста); КонецЦикла; Текст.Записать(ФайлДанных); |
|||
2
PCcomCat
07.12.11
✎
13:07
|
+(1) Ой! Вместо ВставитьСтроку = ЗаменитьСтроку.
|
|||
3
AugustBlack
07.12.11
✎
13:10
|
(3), спс
// Вставить содержимое обработчика. Текст = Новый ТекстовыйДокумент; Текст.Прочитать(ФайлДанных); Для Номер = 1 По Текст.КоличествоСтрок() Цикл Строка = Текст.ПолучитьСтроку(Номер); Если Найти(Строка, "&")<>0 Тогда СтрокаЗамены = СтрЗаменить(Строка, "&", "&"); Текст.ЗаменитьСтроку(Номер,СтрокаЗамены); КонецЕсли; КонецЦикла; Текст.Записать(ФайлДанных); |
|||
4
Wobland
07.12.11
✎
13:13
|
(3) Если Найти(Строка, "&")<>0 Тогда - это лишнее
|
|||
5
PCcomCat
07.12.11
✎
13:13
|
Только не стоит использовать в качестве переменных Строка, Число и т.д.
|
|||
6
AugustBlack
07.12.11
✎
13:15
|
(4) Находит в исходной строке все вхождения подстроки поиска и заменяет ее на подстроку замены.
м, тогда да... (5) не совсем понял... |
|||
7
Wobland
07.12.11
✎
13:16
|
(6) не называй переменные Строка, Число, Дата и т.п. Говори ласково: Строчечка, Числочко, Датенька (никогда в зарезервированных не появятся )
|
|||
8
AugustBlack
07.12.11
✎
13:16
|
а...спс...
|
|||
9
acsent
07.12.11
✎
13:22
|
(0) А если в файле уже & ?
|
|||
10
Godofsin
07.12.11
✎
13:24
|
(7) "Числочко" - зач0т!!! =)))))
|
|||
11
AugustBlack
07.12.11
✎
13:34
|
(9) как раз такого и не может быть, но все же верно подмечено....
|
|||
12
hhhh
07.12.11
✎
14:20
|
(9) как-то так
СтрокаЗамены = СтрЗаменить(Строка, "&", "&"); СтрокаЗамены = СтрЗаменить(СтрокаЗамены, "&аmp;", "&"); |
|||
13
AugustBlack
12.12.11
✎
12:55
|
почему после этого кода изменяется весь файл к примеру было:
<?xml version="1.0" encoding="UTF-8"?> <V8Exch:_1CV8DtUD xmlns:V8Exch="http://www.1c.ru/V8/1CV8DtUD/" xmlns:v8="http://v8.1c.ru/data" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> <V8Exch:Data> <CatalogObject.Контрагенты> <Ref>0000001</Ref> <IsFolder>false</IsFolder> <DeletionMark>false</DeletionMark> <Code>000000041</Code> <Description>ООО "Вертикаль"</Description> <Комментарий/> <ЮрФизЛицо>ЮрЛицо</ЮрФизЛицо> <ИНН>7203250760</ИНН> <КодПоОКПО/> <КПП/> <НаименованиеПолное>ООО "Вертикаль"</НаименованиеПолное> <ОсновнойБанковскийСчет/> </CatalogObject.Контрагенты> стало: <?xml version="1.0" encoding="UTF-8"?> <V8Exch:_1CV8DtUD xmlns:V8Exch="http://www.1c.ru/V8/1CV8DtUD/" xmlns:v8="http://v8.1c.ru/data" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> <V8Exch:Data> <CatalogObject.Контрагенты> <Ref>0000001</Ref> <IsFolder>false</IsFolder> <DeletionMark>false</DeletionMark> <Code>000000041</Code> <Description>РћРћРћ "Вертикаль"</Description> <Комментарий/> <ЮрФизЛицо>ЮрЛицо</ЮрФизЛицо> <Р?РќРќ>7203250760</Р?РќРќ> <РљРѕРґРџРѕРћРљРџРћ/> <РљРџРџ/> <НаименованиеПолное>РћРћРћ "Вертикаль"</НаименованиеПолное> <ОсновнойБанковскийСчет/> </CatalogObject.Контрагенты> <CatalogObject.Контрагенты> добавил: Текст.Записать(ФайлДанных,КодировкаТекста.UTF8); тот же результат |
|||
14
AugustBlack
12.12.11
✎
13:03
|
up
|
|||
15
ЧеловекДуши
12.12.11
✎
13:08
|
Неправильно сохраняешь.
Так же метод "ТекстовыйДокумент" считывает весь файл в память. А после обрабатывает. Так что при записи, вы на самом деле опять записываете весь документ :) ...т.е. попросту идет полная перезапись... |
|||
16
ЧеловекДуши
12.12.11
✎
13:09
|
+ посмотри в отладчике, как ты открыл файл.
|
|||
17
Дядя Васька
12.12.11
✎
13:12
|
(13) А почему собсно UTF8? 1251 же наверняка.
|
|||
18
PCcomCat
12.12.11
✎
13:14
|
+(13)В кодировке дело. А если КодировкаТекста.ANSI?
|
|||
19
AugustBlack
12.12.11
✎
13:14
|
(15) - Текст.Записать(ФайлДанных,КодировкаТекста.UTF8); но я же указал это
(13) xml файл в формате UTF8 (без BOM) |
|||
20
AugustBlack
12.12.11
✎
13:17
|
(13) гы...сработало, я невдоумении
|
|||
21
AugustBlack
12.12.11
✎
13:17
|
т.е (18) ANSI кодировку поставил
|
|||
22
PCcomCat
12.12.11
✎
13:19
|
(21) Потому как ты не с XML в данный момент работаешь, а с текстовым документом.
|
|||
23
Дядя Васька
12.12.11
✎
13:20
|
(19) А при чтении указать не надо? )
|
|||
24
Дядя Васька
12.12.11
✎
13:20
|
+(23) Прочитал как ANSI, записал как UTF8, и фигли ты хочешь...
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |