Имя: Пароль:
1C
 
Выгружая данные в файл, в конце файла создается пустая строка, как ее убрать?
0 Asintelekt
 
04.02.10
06:47
Код выгрузки:

Текст = Новый ТекстовыйДокумент;
Текст.ДобавитьСтроку("Проба");
Текст.ДобавитьСтроку("Проба2");
Текст.ДобавитьСтроку("Проба3");                
Текст.Записать("D:\Downloads\text.txt");

В файле в итоге не 3, а 4 строки. При этом 4я пустая, выглядит, так как будто после стоки "Проба3" нажали «Enter», как от нее избавиться?
Заранее спасибо!
1 Андрюха
 
04.02.10
06:51
ТекстовыйДокумент.УдалитьСтроку(ТекстовыйДокумент.КоличествоСтрок() - 1);
2 AlStorm
 
04.02.10
06:54
(0)
ДобавитьСтроку() добавляет саму строку и символ переноса строки. Можно просто стереть один символ конечной строки и все:)
3 Asintelekt
 
04.02.10
06:59
(1)
Текст.УдалитьСтроку(Текст.КоличествоСтрок() - 1); - удалит строчку "Проба2"
Текст.УдалитьСтроку(Текст.КоличествоСтрок()); - удалит строчку "Проба3"
Текст.УдалитьСтроку(Текст.КоличествоСтрок() + 1); ничего не делает, сноска остается, сам пробывал до постановки вопроса.
4 Asintelekt
 
04.02.10
07:00
(2) Как степерь этот один символ конечной строки?
5 Андрюха
 
04.02.10
07:05
(3) Надо Текст.УдалитьСтроку(Текст.КоличествоСтрок() - 1); А ты написал Текст.УдалитьСтроку(Текст.КоличествоСтрок() + 1);
6 Asintelekt
 
04.02.10
07:10
(5), я написал 3 примера (3), ваш вариант удаляет строку "Проба2"
7 Андрюха
 
04.02.10
07:12
(6) А, ну значит нумерация в тексте не с 0, а с 1. Т.е. должно работать так:Текст.УдалитьСтроку(Текст.КоличествоСтрок());
8 Asintelekt
 
04.02.10
07:14
(7) Удаляет строку "Проба3", там не строку надо удалить, а последний символ этой строки, так как, "Enter" - это символ вконце строки, то есть надо у строки "Проба3", каким-то способом удалить последний символ
9 Андрюха
 
04.02.10
07:17
(8) Лев(Текст, СтрДлина(Текст) - 1);
10 AlStorm
 
04.02.10
07:22
Может так:
СтрЗаменить(Текст, Символы.ВК (или Символы.ПС, "");
11 AlStorm
 
04.02.10
07:23
Ну в смысле не во всем тексте, в последней строке:)

СтрЗаменить(ПоследняяСтрока, Символы.ВК (или Символы.ПС), "");
12 Asintelekt
 
04.02.10
07:23
(10) Вопрос в том, где эту строку применить?:)
13 AlStorm
 
04.02.10
07:25
(12)
А ну да, это вопрос:)) Что-то я увлекся:)
14 ASU_Diamond
 
04.02.10
07:25
Текст.КоличествоСтрок() в данном случае выдает 3, я так предполагаю что 1С эту последнюю добавленную строку не видит
15 ASU_Diamond
 
04.02.10
07:27
(+14) а может эту строку добавляет сам редактор
16 ASU_Diamond
 
04.02.10
07:29
(+15) т.к. в строке в конце стоит символ перевода строки, то фактически новой строки нет, но когда открываешь редактор он его считывает и переводит на новую строку. ИМХО
17 ASU_Diamond
 
04.02.10
07:32
нашел решение:
Текст.УстановитьТекст(
"Проба
|Проба2
|Проба3")

или
лСтр="Проба
|Проба2
|Проба3")
Текст.УстановитьТекст(лСтр);
18 AlStorm
 
04.02.10
07:38
(17)
Гыгы, оригинально:)
19 AlStorm
 
04.02.10
07:38
(17)
А если открыть редакторе 1с и закрыть, что будет?
20 Asintelekt
 
04.02.10
07:39
Спс. (17) Я тоже нашел решение, оно еще легче:)
Надо изменить разделитель перед добавлением последней строки:

Текст.РазделительСтрок = Символы.ВК;

В итоге код:

Текст = Новый ТекстовыйДокумент;
Текст.ДобавитьСтроку("Проба");
Текст.ДобавитьСтроку("Проба2");
Текст.РазделительСтрок = Символы.ВК;
Текст.ДобавитьСтроку("Проба3");                
Текст.Записать("D:\Downloads\text.txt");
21 Asintelekt
 
04.02.10
07:39
Всем спасибо, за помощь
22 AlStorm
 
04.02.10
07:40
Хм, а я думал что разделитель строк один на весь документ...
Ошибался, значит
23 Asintelekt
 
04.02.10
07:42
(22) Я тоже так думал, оказывается он применяется при добавление или вставке новой строки. Мне просто отчет сдавать через 2 часа, поэтому не эксперементировал:) Просто все другие моменты решил и занялся данной проблемой.
24 ASU_Diamond
 
04.02.10
07:42
дааа... к каким только извращениям не приводит программирование на 1с...
Компьютеры — это как велосипед. Только для нашего сознания. Стив Джобс