Файлы

  • Автор темы Vunda
  • Дата начала
Статус
Закрыто для дальнейших ответов.
V

Vunda

#1
Здраствуйте мне очень нужно:
Проверить существует ли файл (например "test.ini") в папке с базой.
Если нет создать, и записать в него несколько строк ("строка 1", "строка 2", "строка 3")
Если есть прочитать значения в переменные ("перем 1", "перем 2", "перем 3")

Подскажите пожалуйста как это сделать в 8 версии.
 
X
#2
Открывай конфигуратор, Справка - Поиск по справке, пишем в поле поиска слово "файл", тама находим функций работы с файлами.

Я бы хранил значения в файле в разделенными каким то символом в виде строки, например вот так aaa$bbb$ccc, записывал и читал бы из файла эту строку и разбивал её на кусочки, получая значения переменных, для этого я бы использовал объект "ИзвлечениеТекста". Ну, почитай там и выбери удобный тебе вариант.
 
V

Vunda

#3
Спасибо, но лутше хранить разные параметры в разних строках, оно и читабельнее будет :)
А по справках порыюсь...
Только если можне какая функцыя возвращает значение каталога, где находиться база??
 

SeverBap

Well-known member
18.09.2007
451
0
#4
Vunda
КаталогИБ() - возращает каталог базы!!!
Я бы разделял так: "Перем1","Перем2"
А потом:
Код:
Текст=СоздатьОбъект("Текст");
Текст.КодоваяСтраница(1);
Текст.Открыть(Каталог+ИмяФайла);
Для Сч=1 По Текст.КоличествоСтрок() Цикл
Стр=Текст.ПолучитьСтроку(Сч);
Если ПустаяСтрока(Стр)=1 Тогда
Продолжить;
КонецЕсли;	
СписокЗначенийЗагрузки.УдалитьВсе();
СписокЗначенийЗагрузки.ИзСтрокиСРазделителями(Стр);
Перем1=СокрЛП(СписокЗначенийЗагрузки.ПолучитьЗначение(1));
......
КонецЦикла;
Полный код с выбором:
Код:
Процедура кнОткрыть()
Фильтр="txt";
ИмяФайла="";
Каталог="";
Стр="Файл загрузки (*." + Фильтр + ")|*." + Фильтр + "";
Если ФС.ВыбратьФайл(0,ИмяФайла,Каталог,"Открыть файл",Стр,,)=0 Тогда
Возврат;
КонецЕсли;
ТаблицаДанных.УдалитьСтроки();
СписокЗначенийЗагрузки=СоздатьОбъект("СписокЗначений");
Текст=СоздатьОбъект("Текст");
Текст.КодоваяСтраница(1);
Текст.Открыть(Каталог+ИмяФайла);
Стр=Текст.ПолучитьСтроку(1);
СписокЗначенийЗагрузки.УдалитьВсе();
СписокЗначенийЗагрузки.ИзСтрокиСРазделителями(Стр);
Если СписокЗначенийЗагрузки.ПолучитьЗначение(1)="DataBaseForPODR_ALL:PODRAZ-NAME" Тогда
Для Сч=2 По Текст.КоличествоСтрок() Цикл
Стр=Текст.ПолучитьСтроку(Сч);
СписокЗначенийЗагрузки.УдалитьВсе();
СписокЗначенийЗагрузки.ИзСтрокиСРазделителями(Стр);
Если ПустаяСтрока(Стр)=1 Тогда
Продолжить;
КонецЕсли;	
ТаблицаДанных.НоваяСтрока();
ТаблицаДанных.Статус=НеОбработан;
ТаблицаДанных.Код=Число(СокрЛП(СписокЗначенийЗагрузки.ПолучитьЗначение(1)));
ТаблицаДанных.Наименование=СокрЛП(СписокЗначенийЗагрузки.ПолучитьЗначение(2));
Состояние("Количество записей: "+Сч);
КонецЦикла;
ТаблицаДанных.Сортировать("+Код");
КонецЕсли;	
КонецПроцедуры
 

vitfil

IT-интегратор
02.04.2004
2 062
0
#6
Vunda
Конечно не катит. Вот что бывает, когда в названии темы не указана версия 1С.
КаталогИБ() работает в 7.7
 
Статус
Закрыто для дальнейших ответов.