CftClub.ru
Клуб специалистов ЦФТ-Банк

Разбор текстового файла

 
Ответить на тему    Клуб специалистов ЦФТ-Банк (IBSO) -> Уроки ЦФТ-Банк для начинающих
Предыдущая тема :: Следующая тема  
Автор Сообщение
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 работает только с ОРАКЛОЙ, и походу туда я никак не могу его перекинуть почему-то. Crying or Very sad
Что делать, куда копать?
Alexsey
Эксперт


Вступление в Клуб: 06.09.2007
СообщениеСр Ноя 14, 2012 12:14    Ответить с цитатой
Полезность: Нет оценки
yaffil пишет:
Alexsey пишет:
В таком случае клиент находится на сервере, предоставляющем удаленный доступ.


Я вижу данный файл в своей папке, например через загрузку карточки образцов подписей, но, никаким макаром не могу его считать, т.е. stdio работает только с ОРАКЛОЙ, и походу туда я никак не могу его перекинуть почему-то. Crying or Very sad
Что делать, куда копать?

переложить файл, чтобы его можно было взять с удаленного сервера, а затем средствами ЦФТ-Банк затянуть его через FIO на сервер и обработать
_________________
всегда есть как минимум 2 выхода
yaffil
Профи


Вступление в Клуб: 18.08.2011
СообщениеЧт Ноя 15, 2012 08:16    Ответить с цитатой
Полезность: Нет оценки
Проблема решилась, всем спасибо.
Показать сообщения:   
Ответить на тему    Клуб специалистов ЦФТ-Банк (IBSO) -> Уроки ЦФТ-Банк для начинающих Часовой пояс: GMT + 3
Страница 1 из 1

 
Перейти:  
Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете голосовать в опросах
Рейтинг@Mail.ru