|
v7: Создать строку более 255 символов в текстовом файле | ☑ | ||
---|---|---|---|---|
0
shuric_md
18.05.12
✎
13:46
|
Доброе время суток.
Нужен совет в выгрузке данных в текстовой файл. Каждая строка текстового файла должна иметь длину 444 символа. Строки другой длины игнорируются. Вот код: Текст = СоздатьОбъект("Текст"); Текст.КодоваяСтраница(0); Пока Запрос.Группировка(1) = 1 Цикл тз.НоваяСтрока(); тз.ДатаДок = Запрос.ДатаДок; тз.НомерДок = Запрос.НомерДок; //-- заполнил таб.значений стр = ""; стр = тз.ДатаДок + "_" + тз.НомерДок + "_" + // и т.д (всё в одной строке) Текст.ДобавитьСтроку(стр); КонецЦикла; Текст.Записать(ВыбФайлаДанныхВыгрузки); |
|||
1
VladZ
18.05.12
✎
13:48
|
Посмотри в сторону FSO:
oFSO = СоздатьОбъект("Scripting.FileSystemObject"); |
|||
2
Полякова
18.05.12
✎
13:49
|
Используй Scripting.FileSystemObject
|
|||
3
sdv2000
18.05.12
✎
13:52
|
(2) Оксана, зачем тебе ЭТО?
|
|||
4
shuric_md
18.05.12
✎
13:52
|
пробовал = перенос строк происходит
|
|||
5
shuric_md
18.05.12
✎
13:52
|
Выгрузка в банк клиент
|
|||
6
Полякова
18.05.12
✎
13:53
|
(3) Хобби.
|
|||
7
shuric_md
18.05.12
✎
13:55
|
(6) Точно
|
|||
8
andrewks
18.05.12
✎
13:57
|
use Write instead WriteLine
|
|||
9
viktor_vv
18.05.12
✎
13:58
|
А в чем прикол с 255 символов в текстовом файле. Вроде этот толькона вывод окно сообщений ограничивает.
|
|||
10
Полякова
18.05.12
✎
13:59
|
(8) Языком общения на форуме является русский. Сообщения, написаные на любом другом языке, ввиду незнания модератором всех языков мира, кроме русского, автоматически рассматриваются как подстрекательство к свержению правящего строя
Зачем ты пытаешься свергнуть правящий строй? |
|||
11
andrewks
18.05.12
✎
13:59
|
(2) ок, тогда самозабанься за (2)
|
|||
12
andrewks
18.05.12
✎
14:00
|
"Каждая строка текстового файла должна иметь длину 444 символа. Строки другой длины игнорируются. "
интересно, кто такой формат придумал? расстрелять |
|||
13
Полякова
18.05.12
✎
14:01
|
(11) Ты же не маленький мальчик и знаешь разницу.
|
|||
14
andrewks
18.05.12
✎
14:01
|
(13) хочешь поговорить об этом?
|
|||
15
shuric_md
18.05.12
✎
14:03
|
Других идей нет ???
|
|||
16
andrewks
18.05.12
✎
14:05
|
есть. adodb.Stream
|
|||
17
shuric_md
18.05.12
✎
14:07
|
Использовал - "Scripting.FileSystemObject" и "AddIn.V7TextFile" - желаемого результата не добился.
|
|||
18
shuric_md
18.05.12
✎
14:07
|
Подробнее про - adodb.Stream
|
|||
19
Полякова
18.05.12
✎
14:08
|
(17) значит неправильно использовал
|
|||
20
slowpoke1C
18.05.12
✎
14:08
|
(0) Можно ещё использовать v7plus, там длинные строки проходят, вроде бы.
|
|||
21
shuric_md
18.05.12
✎
14:09
|
(20) описание функции v7plus есть
|
|||
22
shuric_md
18.05.12
✎
14:10
|
(19) проверял несколько раз
|
|||
23
andrewks
18.05.12
✎
14:10
|
(22) печалька. забей, это судьба
|
|||
24
shuric_md
18.05.12
✎
14:12
|
(23) не пойдет. :)
|
|||
25
shuric_md
18.05.12
✎
14:15
|
(20) так как насчет описаний функций и процедур v7plus.dll - если нет то чего предлагаешь ?
|
|||
26
andrewks
18.05.12
✎
14:16
|
не, ну сам подумай: СП украли, в гугле забанили, на мисте игнорируют
|
|||
27
shuric_md
18.05.12
✎
14:18
|
(26):)
|
|||
28
aka AMIGO
18.05.12
✎
14:21
|
я думаю, нашел-бы выход из ситуации.
еще один вариант - разбивать перед записью строку на 2 строки, и читать их с конкатенацией.. просто помнить, что строки разрезаны |
|||
29
FN
18.05.12
✎
14:25
|
(0)
Текст=СоздатьОбъект("Текст"); стр=""; для х=1 по 444 Цикл стр=стр+"1"; КонецЦикла; Для х=1 по 15 Цикл Текст.ДобавитьСтроку(стр); КонецЦикла; Текст.Записать("C:\test.txt"); Текст2=СоздатьОбъект("Текст"); Текст2.Открыть("C:\test.txt"); Для х=1 по 15 Цикл Сообщить("Длина строки "+х+": "+СтрДлина(Текст2.ПолучитьСтроку(х))+" символов."); КонецЦикла; выдает: Длина строки 1: 444 символов. Длина строки 2: 444 символов. Длина строки 3: 444 символов. Длина строки 4: 444 символов. Длина строки 5: 444 символов. Длина строки 6: 444 символов. Длина строки 7: 444 символов. Длина строки 8: 444 символов. Длина строки 9: 444 символов. Длина строки 10: 444 символов. Длина строки 11: 444 символов. Длина строки 12: 444 символов. Длина строки 13: 444 символов. Длина строки 14: 444 символов. Длина строки 15: 444 символов. |
|||
30
viktor_vv
18.05.12
✎
14:30
|
Вот и у меня так же. В чем прикол, понять не могу. Хотя судя по хитрому взгляду smaharbA здесь :) Ограничение на длину строки что-то в этом есть :).
|
|||
31
shuric_md
18.05.12
✎
14:37
|
(30) то есть через "scripting.filesystemobject" ? Если да - результат не тот.
|
|||
32
shuric_md
18.05.12
✎
14:38
|
(29) на таком простом примере всё в норме, ты попробуй выгрузи одно платежное поручение в 1 строку.
|
|||
33
viktor_vv
18.05.12
✎
14:40
|
(32) Так в теме из (30) есть еще про наличие спецсимволов в строке.
|
|||
34
shuric_md
18.05.12
✎
14:43
|
(33) у тебя дало желанный результат
|
|||
35
Mikeware
18.05.12
✎
14:44
|
(26) ...ЖКК сгорели...
|
|||
36
viktor_vv
18.05.12
✎
14:45
|
(34) Не пробовал. Экспериментировал как в (29).
|
|||
37
shuric_md
18.05.12
✎
14:48
|
(36) в (29) тоже что-то есть :)
|
|||
38
shuric_md
18.05.12
✎
15:02
|
(29) делаю по твоему примеру:
колстр = 0; Пока Запрос.Группировка(1) = 1 Цикл колстр = колстр + 1; тз.НоваяСтрока(); тз.ДатаДок = Запрос.ДатаДок; тз.НомерДок = Запрос.НомерДок; //-- и т.д. стр = ""; Для н=1 по тз.КоличествоКолонок() Цикл стр = стр + тз.ПолучитьЗначение(колстр, н); КонецЦикла; Текст.ДобавитьСтроку(стр); КонецЦикла; Текст.Записать(ВыбФайлаДанныхВыгрузки); |
|||
39
shuric_md
18.05.12
✎
15:03
|
Да-а-а больше нет идей !?
|
|||
40
ЧеловекДуши
18.05.12
✎
15:06
|
Объект "Текст" - Зло от 1С + Билла.
Используй 1С++ - BinaryData |
|||
41
shuric_md
18.05.12
✎
15:09
|
(40) нет спасибо...
|
|||
42
FN
18.05.12
✎
15:10
|
(39) ты можешь объяснить что именно у тебя не получается?
|
|||
43
shuric_md
18.05.12
✎
15:18
|
ДАТА |ИСП|ДАТА ДОК. |N ДОК |ТИП|КОД|ДЕБЕТ |КРЕДИТ | должно быть.
|
|||
44
shuric_md
18.05.12
✎
15:18
|
ДАТА |ИСП|ДАТА ДОК. |N ДОК |ТИП
|КОД|ДЕБЕТ |КРЕДИТ | - получается |
|||
45
viktor_vv
18.05.12
✎
15:19
|
Так попробуй.
стр = ""; Для н=1 по тз.КоличествоКолонок() Цикл стр = стр + тз.ПолучитьЗначение(колстр, н); КонецЦикла; Стр = СтрЗаменить(Стр,Симв(10),""); Стр = СтрЗаменить(Стр,Симв(13),""); Текст.ДобавитьСтроку(стр); |
|||
46
ЧеловекДуши
18.05.12
✎
15:20
|
(41)Зря, ну а если серьезно, то начни лучше выгрузку делать через XML :)
|
|||
47
shuric_md
18.05.12
✎
15:22
|
(45) что заменяет ? Не поиму.
Стр = СтрЗаменить(Стр,Симв(10),""); Стр = СтрЗаменить(Стр,Симв(13),""); |
|||
48
ЧеловекДуши
18.05.12
✎
15:23
|
Ты выгрузку для какой программы делаешь?
|
|||
49
shuric_md
18.05.12
✎
15:24
|
(48) для клиент банка
|
|||
50
ЧеловекДуши
18.05.12
✎
15:24
|
(49)И что у них есть прописаный формат файла?
Или ты строчишь со слов туп. Буха? |
|||
51
ЧеловекДуши
18.05.12
✎
15:25
|
+ Приведи текст формата, они обычно на словах не общаются :)
|
|||
52
chief accountant
18.05.12
✎
15:25
|
(49) Что за банк такой странный, что ему типовая не подходит?
|
|||
53
shuric_md
18.05.12
✎
15:25
|
(51) есть описание текст.файла для импорта плат.поручений
|
|||
54
ЧеловекДуши
18.05.12
✎
15:26
|
Покажи, что ты там имеешь в виду.
Думается ты даже понятие не имеешь, что тебе надо нарисовать :) |
|||
55
chief accountant
18.05.12
✎
15:27
|
(54) Либо не Россия, либо ТС гонит
|
|||
56
shuric_md
18.05.12
✎
15:27
|
(54) ... так, понятно спасибо за помощь.
|
|||
57
shuric_md
18.05.12
✎
15:28
|
(55) ... и тебе тоже спасибо.
|
|||
58
shuric_md
18.05.12
✎
15:29
|
(55) .. по нику мог бы определить что не Россия.
|
|||
59
viktor_vv
18.05.12
✎
15:30
|
Ну ты бы таки выложил хотя бы пару строчек из полученного тобой файла. Конфеденциальную информацию забей единичками.
|
|||
60
viktor_vv
18.05.12
✎
15:30
|
(58) Так ты из Молдовы что ли ?
|
|||
61
chief accountant
18.05.12
✎
15:32
|
(58) у меня телепат сегодня выключен.
не жми формат - выложи |
|||
62
viktor_vv
18.05.12
✎
15:32
|
(47) Заменяет символы перевода строки CR+LF.
И у тебя всегда режет как в (44) ? |
|||
63
shuric_md
18.05.12
✎
15:43
|
(62) спасибо сейчас попробую
|
|||
64
shuric_md
18.05.12
✎
16:24
|
(62) Большое спасибо за помощь.
Кого интересует: стр = ""; Для н=1 по тз.КоличествоКолонок() Цикл стр = стр + тз.ПолучитьЗначение(колстр, н); КонецЦикла; стр = СтрЗаменить(Стр,РазделительСтрок,""); Текст.ДобавитьСтроку(стр); |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |