Читання *. CSV файла

Автор Olga, Жовтень 29, 2025, 03:07:09 ПП

Попередня тема - Наступна тема

0 Користувачі і 1 Гість дивляться цю тему.

Olga

 При читанні *. CSV файла  всі записи переносяться в таблицю але деякі записи потрапляють не повністю .
 Для недобрих записів значення полів з початку запису є  а значення поля що в кінці запису немає .
  В чому причина ? Що не так ?
Після виконання функції дані з файла попадають в таблию i_BUFTASKOM20. Далі читаємо кожну запис в
поле pole . Далі аналізую кожну запис pole. Так для деяких записів поля не переносяться там пусто замість значень. Що не так ?
types: BUFTASKOM2 TYPE BUFTASKOM0_20170614.
types:
begin of BUFTASKOM0_20170614, "ВЫПИСКА
 L(3000)," OLG
end   of BUFTASKOM0_20170614,
data: pole(3000) .
DATA : i_BUFTASKOM20 TYPE TABLE OF BUFTASKOM2     with header line,
   
......
refresh i_buftaskom20.

CALL FUNCTION 'WS_UPLOAD' EXPORTING FILENAME = WAY FILETYPE = 'DAT'
 TABLES DATA_TAB = i_BUFTASKOM20
 EXCEPTIONS "FILE_OPEN_ERROR = 1 FILE_READ_ERROR = 2.
   CONVERSION_ERROR              = 1
   FILE_OPEN_ERROR               = 2
   FILE_READ_ERROR               = 3
   INVALID_TYPE                  = 4
   NO_BATCH                      = 5
   UNKNOWN_ERROR                 = 6
   INVALID_TABLE_WIDTH           = 7
   GUI_REFUSE_FILETRANSFER       = 8
   CUSTOMER_ERROR                = 9
   OTHERS                        = 10.
*----------------------------
loop at i_buftaskom20  .
pole = i_buftaskom20-L .
......
endloop.

Uukrul

Ну возможно есть спецсимволы которые обрезают строку файла при чтении. Посмотрите обрезаемые строчки в каком-то редакторе который показывает все данные.

Olga

В поле i_buftaskom20-L попадає запис *.CSV файла . Поля розділені між собою символом ";" .

В деяких тестових полях *.CSV файла може бути також цей символ. Я заміняю  символ ";" з таких полів на пробіл .

Проблема в тому що деякі записи попадають в поле i_buftaskom20-L не повністю . Через Ексель  ніяких спецсимволів не видно .

Uukrul

Цитата: Olga від Жовтень 30, 2025, 08:58:54 ДППроблема в тому що деякі записи попадають в поле i_buftaskom20-L не повністю . Через Ексель  ніяких спецсимволів не видно .
Так це треба дивитись не через ексель, а щось що може показати байтові дані.

Olga

#4
Це мабуть через " ' "  апостроф . Бо читає тільки до  символа " ' " . Наприклад в полі є такий текст

          інші платежі (у т.ч. за послуги зв'язку,домофони,тощо).

 Перноситься тільки текст

          інші платежі (у т.ч. за послуги зв

і далі нічого ніякі поля не видно !

Хоча цього символа не видно якщо переглядати *.CSV файл в Екселі .

Uukrul

Цитата: Olga від Жовтень 30, 2025, 11:12:10 ДПЦе мабуть через " ' "  апостроф . Бо читає тільки до  символа " ' " . Наприклад в полі є такий текст
Ну вот причину уже нашли. Теперь вопрос как ее обойти.

SMF spam blocked by CleanTalk