Как загрузить из TXT файла?

Форум 1С: Одинэс.Ру

Найти!

Как загрузить из TXT файла?

maksimka
21.07.2009 - 16:08
Не было опыта, а сейчас нужно загружать из тхт файла в бухгалтерию данные из другой проги, есть ли у кого пример обработки или с чего начать?
Вот пример строки в файле:
;2589767;10.07.2009;6;ЗАО ЦВ "Протек"; ООО "Фирма ГИСС";42;12438,54;14333,45;1186,5;N87002556/0 от 06.06.09;157,13;10.07.2009;0;11534,38;904,16;1048,58;137,92;
К списку тем 1 > К списку форумов
Google Adsense

Re: Как загрузить из TXT файла?

Billi
1 - 21.07.2009 - 16:32
Взято из типовой:
//******************************************************************************
// глРазложить(Знач Стр, Разделитель = ",")
//
// Параметры:
//  Стр - строка, которую необходимо разложить на подстроки.
//        Параметр передается по значению.
//  Разделитель - строка-разделитель, по умолчанию - запятая.
//
// Возвращаемое значение:
//  Список значений элементы которого - подстроки
//
// Описание:
//  Функция "расщепляет" строку на подстроки, используя заданный
//  разделитель. Разделитель может иметь любую длину.
//  Если в качестве разделителя задан пробел, рядом стоящие пробелы
//  считаются одним разделителем, а ведущие и хвостовые пробелы параметра Стр
//  игнорируются.
//  Например,
//  глРазложить(",ку,,,му", ",") возвратит список значений из пяти элементов,
//  три из которых - пустые строки, а
//  глРазложить(" ку   му", " ") возвратит список значений из двух элементов
//
Функция глРазложить(Знач Стр, Разделитель = ",") Экспорт
 
Список = СоздатьОбъект("СписокЗначений");
Длина  = СтрДлина(Разделитель);
 
Стр = СокрЛП(Стр);
Поз = Найти(Стр, Разделитель);
 
Пока 0 < Поз Цикл
Список.ДобавитьЗначение(СокрП(Лев(Стр, Поз-1)));
 
Стр = СокрЛ(Сред(Стр, Поз+Длина));
Поз = Найти(Стр, Разделитель);
КонецЦикла;
 
Список.ДобавитьЗначение(Стр);
 
Возврат Список;
 
КонецФункции // глРазложить()

Re: Как загрузить из TXT файла?

Michael
2 - 21.07.2009 - 16:34
Начать с объекта Текст (если в 7-ке)
Потом курить Найти, Лев, Прав и Сред
Этого достаточно

Re: Как загрузить из TXT файла?

Michael
3 - 21.07.2009 - 16:40
В список можно проще
Стр = СтрЗаменить(Стр,Симв(34)б "'");
Стр = Симв(34)+СтрЗаменить(Стр,";", Симв(34)+","+Симв(34))+Симв(34);
Список = ИзСтрокиСРазделителями(Стр);
 

Re: Как загрузить из TXT файла?

maksimka
4 - 21.07.2009 - 16:46
А как из файла то взять данные?

Re: Как загрузить из TXT файла?

Billi
5 - 21.07.2009 - 16:47
3-Michael >Там в числах разделитель дробной части - запятая.

Re: Как загрузить из TXT файла?

Billi
6 - 21.07.2009 - 16:51
Текст=СоздатьОбъект("Текст");
Текст.Открыть(ИмяФайла);
Для Сч=1 по Текст.КоличествоСтрок() Цикл
Стр=Текст.ПолучитьСтроку(Сч);
Список=глРазложить(Стр,";");
Для ъ=1 по Список.РазмерСписка() Цикл
  Подстрока=Список.ПолучитьЗначение(ъ);
  //Здесь обрабатываем подстроку
КонецЦикла;
КонецЦикла;

Re: Как загрузить из TXT файла?

maksimka
7 - 21.07.2009 - 16:54
1-Billi >
2-Michael >
Спасибо огромное, буду разбираться!

Re: Как загрузить из TXT файла?

СветикK
8 - 02.08.2009 - 07:27
О! да есть люди с оп\ытом сидт без работы... круто!

Re: Как загрузить из TXT файла?

2Green
9 - 02.08.2009 - 15:17
СветикK, а что?

Re: Как загрузить из TXT файла?

Irkut
10 - 03.08.2009 - 01:29
Как загрузить из Exele файла?
Может кто подскажет, с чего начать, что почитать, пожалуйста

Re: Как загрузить из TXT файла?

drums2004
11 - 03.08.2009 - 03:02
(10) поиском что ли лень пользоваться ?? тут про эксель уже язык смозолили ..

Re: Как загрузить из TXT файла?

который не честный
12 - 03.08.2009 - 03:05
10 - лови
 
Функция ExternalConnection_Инициализация_MicrosoftJet_Excel(ФайлПуть,objConnection)
ИменаПолейВПервойСтроке=0;
objConnection=CreateObject("ADODB.Connection");
objConnection.Open("Provider=Microsoft.Jet.OLEDB.4.0; Data Source=" + ФайлПуть + ";Extended Properties=""Excel 8.0;HDR=" +?(ИменаПолейВПервойСтроке=1,"YES","NO") + ";'""");
КонецФункции
 
Функция ExternalConnection_ПолучитьРекордсетExcel(objConnection,тТекстЗапроса)
adOpenStatic = 3;
adOpenKeyset=1;
adLockOptimistic = 3;
adCmdText = 1;
objRecordset = CreateObject("ADODB.Recordset");
objRecordset.Open(тТекстЗапроса, objConnection, adOpenKeyset, adLockOptimistic);
Возврат objRecordset;
КонецФункции
 
Процедура Сформировать()
ФайлПуть="d:\3.xls";
objConnection=0;
ExternalConnection_Инициализация_MicrosoftJet_Excel(ФайлПуть,objConnection);
 

Начало=_GetPerformanceCounter();
Рек=ExternalConnection_ПолучитьРекордсетExcel(objConnection,"Select Kod from [Лист1$] Where Kod='100'");
Пока рек.EOF=0 Цикл
Сообщить(рек.Fields("F1").Value);
рек.MoveNext();
КОнецЦикла;
 

КонецПроцедуры

Re: Как загрузить из TXT файла?

который не честный
13 - 03.08.2009 - 03:06
Вернее
Рек=ExternalConnection_ПолучитьРекордсетExcel(objConnection,"Select F1 from [Лист1$] Where F1='100'");

Re: Как загрузить из TXT файла?

Пацталоцци
14 - 03.08.2009 - 05:27
(12,13) охренеть!
зачем Excel открывать через ADO ?
ищем самых сложных путей?
 

Re: Как загрузить из TXT файла?

drums2004
15 - 03.08.2009 - 05:29
(14) гыыыы ... а это всё как на родине нащей водится ... всё через ж..пу :)

Re: Как загрузить из TXT файла?

который не честный
16 - 03.08.2009 - 05:31
14 - помоему, это проще, чем лазить по табличке как в двухмерном массиве. Выбрал запросом и не мучаешся.

Re: Как загрузить из TXT файла?

Пацталоцци
17 - 03.08.2009 - 05:34
Функция ЗагрузитьФайл(ФайлДанных, ТЗ)
 
Excel=CreateObject("Excel.Application");        
Workbook = Excel.Application.Workbooks.Open(ФайлДанных);
WorkSheet = Workbook.Sheets(1);
ВсегоСтрокНаЛисте = WorkSheet.Cells.SpecialCells(11).Row;
 
Для i=2 по ВсегоСтрокНаЛисте Цикл  
Состояние("Загрузка файла:  "+i+" из "+ВсегоСтрокНаЛисте);
 
ТЗ.НоваяСтрока();
ТЗ.Ид = WorkSheet.Cells(i,1).Value;
ТЗ.НомерДоговора = WorkSheet.Cells(i,3).Value;
ТЗ.ДатаПлатежа = WorkSheet.Cells(i,4).Value;
ТЗ.СуммаПлатежа = WorkSheet.Cells(i,5).Value;
ТЗ.СуммаАванса = WorkSheet.Cells(i,6).Value;
КонецЦикла;
 
Workbook.Close();
Excel = "";
 
Возврат 1;
КонецФункции //ЗагрузитьФайл
К списку тем 1 > К списку форумов
Тема закрыта и находится в архиве.
Но Вы можете начать новую тему.
© 2009 Форум 1С: Одинэс.Ру
В основу сайта был положен архив форума «Территория 1С»