|
![]() |
#1 |
MCTS
|
Формат файла считаем таким:
Цитата:
[Header]
‡ Є §;19;Џђ.‡-00077;9;?‚ЂЌЋ‚ Ђ.; ‡ Є §;29;Џђ.‡-00077;10;?‚ЂЌЋ‚ Ђ.; [Body] ‡ Є §;39;Џђ.‡-00077;11;?‚ЂЌЋ‚ Ђ.; ‡ Є §;49;Џђ.‡-00077;12;?‚ЂЌЋ‚ Ђ.; Код: f.TEXTMODE(TRUE); f.OPEN(CommonDlgMgt.GetPath + CommonDlgMgt.GetFileName); f.CREATEINSTREAM(StreamInObj); i := 0; gheader:=FALSE; //новая переменная WHILE NOT (StreamInObj.EOS()) DO BEGIN //читаем построчно. StreamInObj.READTEXT(buffer); i+= 1; CASE buffer OF // в зависимости от значения переменной buffer делаем следующие действия '[Header]'::gheader:=TRUE; //если хидер, то присваиваем переменной gheader значение Да '[Body]'::gheader:=FALSE //если началась секция боди, то присваиваем переменной gheader значение Нет ELSE //во всех остальных случаях (т.е. читаются строки с данными) производится вставка в таблицы IF gheader THEN BEGIN //в заголовок //инициализация новой записи rDocHeader.POLE1:=Explode(buffer,1); rDocHeader.POLE2:=Explode(buffer,2); ... rDocHeader.POLEN:=Explode(buffer,N); //вставка записи в таблицу END ELSE BEGIN //в табличную часть //инициализация новой записи rDocLine.POLE1:=Explode(buffer,1); rDocLine.POLE2:=Explode(buffer,2); ... rDocLine.POLEM:=Explode(buffer,M); //вставка записи в таблицу END; END; f.CLOSE(); |
|