05.07.2007, 15:33 | #1 |
Участник
|
Работа с классом AsciiIO
Добрый день,Хочу немного спросить о работе с классом AsciiIO. Мне предстоит задача обработки файла данных, в которую данные записываются из другой программы по строкам без полей, типа:Название клиента: ООО АБЛКорр.счёт: 11111111Банк: БАЛ.... Данные здесь необходимо загружать постоянно в таблицу в Axapta. Для чтения решил использовать класс AsciiIO по рекомендации здесь http://axapta.mazzy.ru/lib/textfile/ . Пока знаю очень мало методов для работы с ним.Например, каким образом можно 1) Присвоить контейнеру значение из строки № N в файле ?2) Проверить конец файла ?Если у вас есть опыт работы с этим классом, поделитесь, спасибо
|
|
05.07.2007, 15:41 | #2 |
Участник
|
X++: - Io file; container line; ................. file = SysDataIntegration::openFile(".......",'R',";"); while (file.status() == IO_Status::Ok) { line = file.read(); if (!conLen(line)) break; ................. } Последний раз редактировалось pdojn; 05.07.2007 в 15:43. |
|
05.07.2007, 15:41 | #3 |
Участник
|
1)чтение из файла идет последовательное, без возможности возврата.
2)AsciiIO.status() != IO_Status::OK |
|
05.07.2007, 15:41 | #4 |
SAP
|
Смотри семейство классов LedgerInAccountStatement это импорт банковской выписки.
|
|
05.07.2007, 15:47 | #5 |
Участник
|
|
|
06.07.2007, 11:23 | #6 |
Участник
|
Ещё такой вопрос, как в X++ коде написать условие типа myvar=="OOO "ABC"" ?
|
|
06.07.2007, 11:39 | #7 |
Участник
|
myvar=="OOO \"ABC\""
|
|
|
За это сообщение автора поблагодарили: longson (1). |
08.07.2007, 19:02 | #8 |
Участник
|
Вроде бы разобрался. Осталась такая проблема.
Записал в классе своём X++: AsciiIO mFile; LedgerInAccountStatementFromOut_67 recordInAccount; ; mFile = new AsciiIO("C:\\toAxapta.txt","R"); this.BankRecordReceive(mFile); X++: void BankRecordReceive(AsciiIO recordFile) { LedgerInAccountStatementFromOut_67 ledgerInAcc; container state; str strRec, status,type, comment, strTemp; int cntLine; ; ttsbegin; delete_from ledgerInAcc; ttscommit; recordFile.inFieldDelimiter("~"); cntLine=0; while(cntLine<16) { state = recordFile.read(); info(strfmt("%1",conpeek(state,1))); cntLine = cntLine + 1; } Может быть я что - то делал не так ? Последний раз редактировалось longson; 08.07.2007 в 19:05. |
|
|
Опции темы | Поиск в этой теме |
Опции просмотра | |
|