Предыдущая тема :: Следующая тема |
Автор |
Сообщение |
yaffil Профи
Вступление в Клуб: 18.08.2011
|
Вт Ноя 13, 2012 15:03  Разбор текстового файла |
|
Полезность: Нет оценки
|
Добрый день,
есть текстовый файл, который жестко задан, например C:\temp\text.txt
С определённой структурой например дата, № счёта.
Требуется разобрать данный файл, я правильно понимаю что мы делаем так:
Код: |
stroka varchar2;
begin
V_FILE.[DST_PATH] := 'C:\temp\';
V_FILE.[DST_TYPE] := false;
V_FILE.[DST_NAME]:='text.txt';
file := stdio.open(V_FILE.[DST_PATH], V_FILE.[DST_NAME], 'r');
|
Что то клинануло, а как написать loop который по строчно считаем данные и запишет их в stroka до тех пор пока не найдёт конец файла? |
|
 |
yaffil Профи
Вступление в Клуб: 18.08.2011
|
Вт Ноя 13, 2012 17:03   |
|
Полезность: Нет оценки
|
Попробовал написать так, но выпадает ошибка при открытии файла - ORA-20100: EXEC-FILEPATH: [./text.txt] Файл не найден.
Что то не правильно описал в ::[TAX_LIMIT_FILES].[LIB].CopyFile ?
Код: |
file integer;
str string;
v_idx number:=0;
begin
V_FILE.[SRC_PATH] := 'C:\temp\';
V_FILE.[DST_PATH] := '.';
V_FILE.[SRC_TYPE] :=false;
V_FILE.[SRC_NAME]:='text.txt';
::[TAX_LIMIT_FILES].[LIB].CopyFile(v_idx, true, V_FILE.[SRC_NAME], V_FILE.[SRC_PATH], V_FILE.[DST_PATH], false, p_not_copy == true);
debug_pipe('v_idx='||v_idx||',SRC_NAME='||V_FILE.[SRC_NAME]||'DST_PATH='|| V_FILE.[DST_PATH],0);
file := stdio.open(V_FILE.[DST_PATH], V_FILE.[SRC_NAME],'r');
debug_pipe(' Файлы открыты',0);
while stdio.get_line(file, str, null, stdio.wintext, null) loop
debug_pipe(str,0);
end loop;
stdio.close(file);
end;
|
|
|
 |
devor Профи
Вступление в Клуб: 13.02.2012
|
Вт Ноя 13, 2012 18:57   |
|
Полезность: Нет оценки
|
yaffil пишет: | Попробовал написать так, но выпадает ошибка при открытии файла - ORA-20100: EXEC-FILEPATH: [./text.txt] Файл не найден.
Что то не правильно описал в ::[TAX_LIMIT_FILES].[LIB].CopyFile ?
|
Заданный путь
V_FILE.[DST_PATH] := '.';
влечет за собой
[./text.txt] Файл не найден |
|
 |
yaffil Профи
Вступление в Клуб: 18.08.2011
|
Вт Ноя 13, 2012 22:44   |
|
Полезность: Нет оценки
|
devor пишет: |
Заданный путь
V_FILE.[DST_PATH] := '.';
влечет за собой
[./text.txt] Файл не найден |
А как его надо писать? Это же путь для ораклового сервера, т.е. он копируется из V_FILE.[SRC_PATH] := 'C:\temp\';
в корень IBS/
По функции ::[TAX_LIMIT_FILES].[LIB].CopyFile я правильно всё указал по параметрам? |
|
 |
Alexsey Эксперт
Вступление в Клуб: 06.09.2007
|
Ср Ноя 14, 2012 09:47   |
|
Полезность: Нет оценки
|
yaffil пишет: | devor пишет: |
Заданный путь
V_FILE.[DST_PATH] := '.';
влечет за собой
[./text.txt] Файл не найден |
А как его надо писать? Это же путь для ораклового сервера, т.е. он копируется из V_FILE.[SRC_PATH] := 'C:\temp\';
в корень IBS/
По функции ::[TAX_LIMIT_FILES].[LIB].CopyFile я правильно всё указал по параметрам? |
напиши
Код: | V_FILE.[DST_PATH] := ::[SYSTEM_PARAMS].[GET]('PATH', false); |
Ну и ты еще отказался от вызова операции COPYFILES, т.к. поставил p_not_copy = true;
в функции вызов копирования файлов осуществляется по false
код должен выглядеть так:
Код: | ::[TAX_LIMIT_FILES].[LIB].CopyFile(v_idx, true, V_FILE.[SRC_NAME], V_FILE.[SRC_PATH], V_FILE.[DST_PATH], false, false); |
_________________ всегда есть как минимум 2 выхода |
|
 |
yaffil Профи
Вступление в Клуб: 18.08.2011
|
Ср Ноя 14, 2012 09:57   |
|
Полезность: Нет оценки
|
Всяко писал, в том числе и вот так:
Код: | stdio.Get_Env('FIO_ROOT_DIR') |
Результат один - файл не найден.
Возможно такое, что это из за того, что банк находится на ЦФТ аутсортинге, т.е. вся база в Новосибирске, доступ осуществляется через Remote Desktop Services?
И как быть в такой ситуации? |
|
 |
Alexsey Эксперт
Вступление в Клуб: 06.09.2007
|
Ср Ноя 14, 2012 10:12   |
|
Полезность: Нет оценки
|
В таком случае клиент находится на сервере, предоставляющем удаленный доступ. _________________ всегда есть как минимум 2 выхода |
|
 |
yaffil Профи
Вступление в Клуб: 18.08.2011
|
Ср Ноя 14, 2012 10:23   |
|
Полезность: Нет оценки
|
Alexsey пишет: | В таком случае клиент находится на сервере, предоставляющем удаленный доступ. |
Я вижу данный файл в своей папке, например через загрузку карточки образцов подписей, но, никаким макаром не могу его считать, т.е. stdio работает только с ОРАКЛОЙ, и походу туда я никак не могу его перекинуть почему-то.
Что делать, куда копать? |
|
 |
Alexsey Эксперт
Вступление в Клуб: 06.09.2007
|
Ср Ноя 14, 2012 12:14   |
|
Полезность: Нет оценки
|
yaffil пишет: | Alexsey пишет: | В таком случае клиент находится на сервере, предоставляющем удаленный доступ. |
Я вижу данный файл в своей папке, например через загрузку карточки образцов подписей, но, никаким макаром не могу его считать, т.е. stdio работает только с ОРАКЛОЙ, и походу туда я никак не могу его перекинуть почему-то.
Что делать, куда копать? |
переложить файл, чтобы его можно было взять с удаленного сервера, а затем средствами ЦФТ-Банк затянуть его через FIO на сервер и обработать _________________ всегда есть как минимум 2 выхода |
|
 |
yaffil Профи
Вступление в Клуб: 18.08.2011
|
Чт Ноя 15, 2012 08:16   |
|
Полезность: Нет оценки
|
Проблема решилась, всем спасибо. |
|
 |
|
|
Вы не можете начинать темы Вы не можете отвечать на сообщения Вы не можете редактировать свои сообщения Вы не можете удалять свои сообщения Вы не можете голосовать в опросах
|
|