![]() |
![]() |
![]() |
|
Замена значений в текстовом файле | ☑ | ||
---|---|---|---|---|
0
Merlin2006
30.05.07
✎
16:36
|
Привет
Никто не сталкивался с такой проблемой?! Надо заменить текст допустим !"А" в "Б"! на следующий текст !"Б" в "А"! Если мы допустим будем искать по символу т.е. А->Б 1 раз заменяем Б->А тогда при первом проходе у нас получится 2 раз заменяем !"Б" в "Б"! при втором !"А" в "А"! А нам надо получить !"Б" в "А"! ?! |
|||
1
Ёпрст2
30.05.07
✎
16:39
|
(0) Вопрос из серии как поменять значения 2-х переменных местами ....
Ответ - через третью ... |
|||
2
Chieftain
30.05.07
✎
16:39
|
Не ищи, а последовательно перебирай символы и ищи в таблице замен
|
|||
3
Merlin2006
30.05.07
✎
16:42
|
Получается мы меняем
!"А" в "Б"! добавляем еще один символ и тогда !"А" в "А1"! 1 раз !"Б1" в "А1"! 2 раз и на 3-им проходе мы убираем 1 символ?! Я правильно понял?! |
|||
4
McNamara
30.05.07
✎
16:44
|
делай перебор
нашел нужный символ-заменяй на нужный идешь далее один проход там будет |
|||
5
Ёпрст2
30.05.07
✎
16:46
|
Cтр = СтрЗаменить(Стр,"А","#");
Cтр = СтрЗаменить(Стр,"Б","А"); Cтр = СтрЗаменить(Стр,"#","А"); |
|||
6
RK
30.05.07
✎
16:47
|
(4) Не-а! Не один.
(3) Там ещё другой вопрос. А если тексте есть А1? Будет А11 - Б1! А если А1 трогать нельзя? |
|||
7
McNamara
30.05.07
✎
16:49
|
(6) значит бери символы не с длиной в один символ, а по разделителям..пробел там или другой какой..
|
|||
8
Merlin2006
30.05.07
✎
16:50
|
а как тогда заменить такую строку
в 1С select [Спр.Наименование] from [Справочник.Материалы] если мы это введем в текстовый файл то получится select Спр1.DESCR from sc98 а мне допустим надо будет заменить sc98 на sc97 и в Таблицы замены у меня есть sc98->sc97 |
|||
9
McNamara
30.05.07
✎
16:52
|
читайте из строки слова и заменяйте сколько душе угодна..проблема в чем так и не пойму
|
|||
10
Merlin2006
30.05.07
✎
17:28
|
ТекстФайла=СоздатьОбъект("Текст");
ТекстФайла.Открыть("c:\22"); // в текстовом файле запись !мама или папа! //надо поменять на !папа или мама! Сз=СоздатьОбъект("СписокЗначений"); Сз.ДобавитьЗначение("папа"); Сз.ДобавитьЗначение("мама"); Для сч=1 По ТекстФайла.КоличествоСтрок() Цикл ПолученнаяСтрока=ТекстФайла.ПолучитьСтроку(сч)+РазделительСтрок; КонецЦикла; строка1=""; строка2=""; сч1=0; Для сч=1 По Сз.РазмерСписка() Цикл строкаЗамены=Сз.ПолучитьЗначение(сч,строка1); строкаШаблона=Сз.ПолучитьЗначение(Сз.РазмерСписка()-сч1,строка2); ПолучаемаяСтрока=СтрЗаменить(ПолученнаяСтрока,строкаЗамены,строкаШаблона+"1"); сч1=сч1+1; Сообщить(ПолучаемаяСтрока); КонеЦЦикла; // решил все таки написать и как я ожидал получил мама или мама1 папа1 или папа и теперь что с этим делать не совсем понятно Вот в этом то вся и проблема |
|||
11
RK
30.05.07
✎
17:31
|
(10)мама1 на папа менять надо сразу...
|
|||
12
Merlin2006
30.05.07
✎
17:32
|
если менять сразу то вообще плохо получается а точнее
мама или мама папа или папа |
|||
13
RK
30.05.07
✎
17:33
|
(12) внимательнее (11) прочитай.
|
|||
14
Merlin2006
30.05.07
✎
17:34
|
Я никак не пойму где ошибка?!
|
|||
15
RK
30.05.07
✎
17:36
|
(14)мама на мама1
папа на папа1 мама1 на папа папа1 на мама |
|||
16
Merlin2006
30.05.07
✎
17:37
|
Запутался окончательно (туплю жарко оч!)
|
|||
17
Merlin2006
30.05.07
✎
17:46
|
ап
|
|||
18
RK
30.05.07
✎
17:55
|
ПолучаемаяСтрока=СтрЗаменить(ПолученнаяСтрока,"мама","мама1");
ПолучаемаяСтрока=СтрЗаменить(ПолученнаяСтрока,"папа","папа1"); ПолучаемаяСтрока=СтрЗаменить(ПолученнаяСтрока,"мама1","папа"); ПолучаемаяСтрока=СтрЗаменить(ПолученнаяСтрока,"папа1","мама"); |
|||
19
Ангел- Хоронитель
30.05.07
✎
17:55
|
то ли я тупой... но никак не могу понять проблему....
|
|||
20
Merlin2006
30.05.07
✎
18:15
|
Спасибо всем получилось!
|
|||
21
insider
30.05.07
✎
18:51
|
(19)+1
(0) ПолучаемаяСтрока=СтрЗаменить(СтрЗаменить(СтрЗаменить(ПолучаемаяСтрока,"мама","папа#"),"папа","мама"),"#","") |
|||
22
insider
30.05.07
✎
18:52
|
+21 точнее вот так:
ПолучаемаяСтрока=СтрЗаменить(СтрЗаменить(СтрЗаменить(ПолучаемаяСтрока,"мама","папа#"),"папа ","мама"),"#","") |
|||
23
RK
30.05.07
✎
18:53
|
(21) Сам пробовал?
|
|||
24
insider
30.05.07
✎
18:56
|
(23) неа, лениво было, а что?
|
|||
25
RK
30.05.07
✎
18:57
|
(24) Не взлетит. Будут одни мамы:)
|
|||
26
insider
30.05.07
✎
18:58
|
(25) так там же пробел добавил, чтоб было каждой твари по паре :) ("папа ")
|
|||
27
RK
30.05.07
✎
19:00
|
(26) он один фиг всех пап на мам поменяет и всё:)
без 4-х СтрЗаменить не получится. |
|||
28
insider
30.05.07
✎
19:13
|
(27) (в точности, как у автора строка):
Что я делаю не так? :) P.S. предыдущий вариант для строки вида "папа мама ", вообщем чтоб слово пробелом оканчивалось |
|||
29
RK
30.05.07
✎
19:17
|
(28) А если "мама и папа" или "'мама' - 'папа'"?
в (8) глянь, зачем ему это...:) Так что 4! СтрЗаменить. |
|||
30
insider
30.05.07
✎
19:20
|
(27) все, я понял, о чем ты, тогда так:
|
|||
31
insider
30.05.07
✎
19:21
|
(29) все равно 3(три) СтрЗаменить :))
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |