|  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. | 
|  |