|
Как прочитать текстовый файл в 8.2 | ☑ | ||
---|---|---|---|---|
0
23th
22.03.12
✎
05:03
|
у меня допустим такой текст.
"123","Масло",566 "321","Маргарин",578 как прочитать строку чтобы; 1 - код, 2 Наименование, 3 цена в помощнике Стр = Текст.ПолучитьСтроку(Ном); он читает строку целиком, а надо раздельно через запятую! Зарание спасибо за ответы! и Доброго Утра |
|||
1
Kavar
22.03.12
✎
05:10
|
К = СтрЗаменить(ТвояСтрока,",",РазделительСтрок);
Код = СтрПолучитьСТроку(К,1); Наименование = СтрПолучитьСТроку(К,2); Цена = СтрПолучитьСТроку(К,3); |
|||
2
badboychik
22.03.12
✎
05:17
|
регулярками еще можно
|
|||
3
23th
22.03.12
✎
05:29
|
спасибо, а что такое "регулярки"?
|
|||
4
Wobland
22.03.12
✎
05:30
|
(3) regular expression
|
|||
5
Wobland
22.03.12
✎
05:30
|
есть гарантия, что в наименовании товара не будет запятой?
|
|||
6
Kavar
22.03.12
✎
05:43
|
(5) да. запятая не самый лучший разделитель.
(0) если сам формируешь текстовый файл, вместо запятой для разделителя лучше использовать какой-нибудь редко встречающийся символ. |
|||
7
big
22.03.12
✎
05:48
|
(1) немного не так. Вот правильнее ИМХО
Стр = Сред(Стр,2,СтрДлина(Стр)-2); Стр = СтрЗаменить(Стр,""",""",Символы.ВК); Код = СтрПолучитьСтроку(СтрокаТипЗаписи,1); Наименование = СтрПолучитьСтроку(СтрокаТипЗаписи,2); Цена = СтрПолучитьСтроку(СтрокаТипЗаписи,3); |
|||
8
big
22.03.12
✎
05:49
|
(7) блин... не глядя скопипастил ))
Код = СтрПолучитьСтроку(Стр,1); Наименование = СтрПолучитьСтроку(Стр,2); Цена = СтрПолучитьСтроку(Стр,3); |
|||
9
23th
22.03.12
✎
05:49
|
тут выгрузка из 7ки а там разделитель ","
я неправильно вначале написал "1223","Масло","566" "321","Маргарин","444" |
|||
10
Wobland
22.03.12
✎
05:49
|
(7) Стр = Сред(Стр,2) имел в виду?
|
|||
11
big
22.03.12
✎
05:52
|
(10) Не, именн -2. Чтобы последнюю кавычку тоже отбросить.
У ТС цена не в кавычках, но кажись он их просто нам не показал. Если из 7-ки выгружает (из СпискаЗНачений как правило), то кавычки всяко должны быть |
|||
12
Kavar
22.03.12
✎
05:53
|
(9) >> тут выгрузка из 7ки а там разделитель ","
Вставь там другой символ и проблем не будет. |
|||
13
23th
22.03.12
✎
05:54
|
"76761","Коллектор выпускной 4213 Е-2,3","4213.1008024-01 ","33 ","Заволжье"
"40839","Насос масляный ЗМЗ-406","406.1011010-03 ","но ","ОАО ""ЗМЗ""" "43968","Переходник масляного фильтра 402","4021 ","53 ","ООО""ШансПлюс""" вот оригинал, точнее его кусок |
|||
14
Kavar
22.03.12
✎
05:54
|
(11) Можно и без кавычек выгрузить. я бы сказал - нужно.
проще потом это все обрабатывать. |
|||
15
big
22.03.12
✎
05:55
|
(9) вообще-то разделитель не запятая, а запятая в кавычках.
|
|||
16
Kavar
22.03.12
✎
05:55
|
(13) Переделывый выгрузку.
ковычки нах. и разделитель другой используй. |
|||
17
big
22.03.12
✎
05:55
|
(13) за такое надо по рукам линейкой пи**дить )))
|
|||
18
big
22.03.12
✎
05:56
|
(16) да не надо ничего переделывать. Смысл?
|
|||
19
Kavar
22.03.12
✎
05:57
|
(18) Смысл в более простой обработке результата.
|
|||
20
Kavar
22.03.12
✎
06:00
|
(18) и номенклатура содержащая в названии "," так же может быть.
|
|||
21
big
22.03.12
✎
06:03
|
(20) да на скорость и сложность это особо не влияет. Хотя справедливости ради скажу, что я при выгрузке меняю двойную кавычку на одинарную. На всякий случай ))
|
|||
22
23th
22.03.12
✎
06:06
|
так там в 7ке он не меняется!
у меня таой текст получился в 8ке Процедура КнопкаВыполнитьНажатие(Кнопка) ТекстДок = Новый ТекстовыйДокумент; ТекстДок.Прочитать("1.txt"); Ном = 1; Пока Ном <10 цикл Стр = ТекстДок.ПолучитьСтроку(Ном); //ТекстДок.РазделительСтрок = ","; К = СтрЗаменить(Стр,",",ТекстДок.РазделительСтрок); Код = СтрПолучитьСТроку(К,1); Наименование = СтрПолучитьСТроку(К,2); ВИН = СтрПолучитьСТроку(К,3); КН = СтрПолучитьСТроку(К,4); Производитель = СтрПолучитьСТроку(К,5); Ном = Ном +1; Сообщить(Производитель); КонецЦикла; // КонецПроцедуры |
|||
23
Wobland
22.03.12
✎
06:10
|
Производитель = СтрЗаменить(СтрПолучитьСТроку(К,5), """", ""), не?
|
|||
24
Wobland
22.03.12
✎
06:11
|
(23) не. запятая - плохой разделитель, и кавычки мешаются
|
|||
25
big
22.03.12
✎
06:16
|
(22)
вот так правильно!!!! К = СтрЗаменить(Стр,""",""",РазделительСтрок); |
|||
26
23th
22.03.12
✎
06:21
|
""",""" он вообще ничего не читает!!!
|
|||
27
0xFFFFFF
22.03.12
✎
06:27
|
А почему никто не вспомнил про
РазложитьСтрокуВМассивПодстрок ? |
|||
28
0xFFFFFF
22.03.12
✎
06:28
|
(13) Следи за руками
Стр = ","+Стр+","; МассивПолей = РазложитьСтрокуВМассивПодстрок(Стр, ""","""); |
|||
29
0xFFFFFF
22.03.12
✎
06:29
|
+28 Вернее вот
Стр = ""","+Стр+","""; МассивПолей = РазложитьСтрокуВМассивПодстрок(Стр, ""","""); |
|||
30
badboychik
22.03.12
✎
06:47
|
(20) и не просто может быть, а уже есть, вон в первой же строчке
|
|||
31
Kavar
22.03.12
✎
06:51
|
(30) нет. в первой строчке просто запятая, а у него разделитель запятая в кавычках.
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |