powered by simpleCommunicator - 2.0.41     © 2025 Programmizd 02
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / Перевод из txt в dbf
13 сообщений из 13, страница 1 из 1
Перевод из txt в dbf
    #39229708
*Эля
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Добрый день. У меня такая проблема- есть текст. файл - с разделителями вида - #

000000000#000000000#000000000#000000000#ООО "ооо"#92401367000#92401367000## Республика####1####

Так вот - в одном из полей попадаются данные, введенные с новой строки:
##Изм уточнен 2014
Изм уточнен 2016#

и соответственно вторая часть садится в новую строку таблицы , а не в одну ячейку.

Подскажите, можно ли как - то это обойти?
Я сажаю через append
APPEND FROM "516.txt" DELIMITED WITH CHARACTER '#'
...
Рейтинг: 0 / 0
Перевод из txt в dbf
    #39229868
malnev7656
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Файл сколько весит ?
...
Рейтинг: 0 / 0
Перевод из txt в dbf
    #39229898
PaulWist
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
*ЭляДобрый день. У меня такая проблема- есть текст. файл - с разделителями вида - #

000000000#000000000#000000000#000000000#ООО "ооо"#92401367000#92401367000## Республика####1####

Так вот - в одном из полей попадаются данные, введенные с новой строки:
##Изм уточнен 2014
Изм уточнен 2016#

и соответственно вторая часть садится в новую строку таблицы , а не в одну ячейку.

Подскажите, можно ли как - то это обойти?
Я сажаю через append
APPEND FROM "516.txt" DELIMITED WITH CHARACTER '#'

Код: sql
1.
2.
3.
STRTFILE(STRTRAN(STRTRAN(filetostr("516.txt"),chr(10)), chr(13)), "New_516.txt")

APPEND FROM "New_516.txt" DELIMITED WITH CHARACTER '#'
...
Рейтинг: 0 / 0
Перевод из txt в dbf
    #39229905
malnev7656
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Не прокатит.
...
Рейтинг: 0 / 0
Перевод из txt в dbf
    #39229931
*Эля
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
malnev7656, 47 Мб
...
Рейтинг: 0 / 0
Перевод из txt в dbf
    #39229956
malnev7656
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
По идее должно было по PaulWist:

Я встречался с такими файлами когда должно но не обязано.

Я делал так. Через импорт в акссе создавал таблицу, сохранял не конвертируемое поле в текстовое, а потом экспортировалобратно, но не переносимые типы типа дата-время в текстовый вид делал.

Хочечь, пришли данный сюда:
malnev7656@yandex.ru
...
Рейтинг: 0 / 0
Перевод из txt в dbf
    #39230038
*Эля
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
PaulWist, это подошло бы, если бы одна строка была. Строк много, а тут получается мы все в одну строку преобразуем...
...
Рейтинг: 0 / 0
Перевод из txt в dbf
    #39230044
*Эля
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
malnev7656, я через Эксель тоже импортом делала, даже с пропуском этой графы. Проблема в том, что эта новая строка посреди поля - сразу считывается как новая строка таблицы.
А нельзя ли как-нибудь загнать все в переменную и считать программно именно по "#" ???
...
Рейтинг: 0 / 0
Перевод из txt в dbf
    #39230101
*ЭляА нельзя ли как-нибудь загнать все в переменную и считать программно именно по "#" ???Прежде чем заниматься гаданиями, камланием и прочими шаманскими штучками выясните точно какие байты находятся в
##Изм уточнен 2014
Изм уточнен 2016#
Особенно интересуют символы между "2014" и "Изм."
...
Рейтинг: 0 / 0
Перевод из txt в dbf
    #39230103
malnev7656
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Я не он я она.
Открой в любом хекс редакторе файл. посмотри как выглядит твое # = chr (0x23) и перепрограммируй чуть- чуть код Димы Т.
...
Рейтинг: 0 / 0
Перевод из txt в dbf
    #39230178
malnev7656
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
LOCAL lc_File = "New_516.txt"
LOCAL lc_FileNew = "New_517.txt"

LOCAL str_2  as String

str_2 = filetostr( lc_File )
str_2 = STRTRAN(str_2,chr(10))
str_2  = STRTRAN(str_2,chr(13))
str_2  = STRTRAN(str_2,chr (0x23))

ext=  STRTOFILE(str_2,lc_FileNew,1)




 ты понимаешь никто вложенности STRTRAN не отменял  и в filetostr тоже 
 
 

Удачи.
...
Рейтинг: 0 / 0
Перевод из txt в dbf
    #39230522
tanglir
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
malnev7656, и получится у нас одна "строка" длиной 47Мб, в которой в кашу, без разделителей, слиты все данные. Очень удобно для загрузки, ага.
Имхо тут 2 варианта:
- если перевод строки внутри поля отличается от стандартного (например, только #10 вместо #10#13), то заменить его на что-то другое (не затрагивая стандартного - очевидно, дубовым стртраном влоб тут не обойтись).
- если такой же... ну, тут придётся писать программку, которая будет разбирать файл, используя только разделитель и количество полей в строке.

PS. при чём здесь вложенность strtran? и о каком посте Димы Т речь? тему чистили?
...
Рейтинг: 0 / 0
Перевод из txt в dbf
    #39230717
Фотография ВладимирМ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
tanglir- если перевод строки внутри поля отличается от стандартного (например, только #10 вместо #10#13), то заменить его на что-то другое (не затрагивая стандартного - очевидно, дубовым стртраном влоб тут не обойтись).
Вообще-то, в этом случае можно почти стандартом обойтись

Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
* Предположим, строка имеет вид
LcString = "123" + chr(10) + "456" + ;
      chr(13) + chr(10) + "7890123"

* Заменяем стандартный перевод строки на фиктивный код Chr(0)
lcString = StrTran(m.lcString, chr(13)+chr(10), chr(0))

* Заменяем все оставшиеся разделители пробелами
lcString = CharTran(m.lcString, chr(13)+chr(10), space(2))

* Восстанавливаем исходные разделители
lcString = StrTran(m.lcString, chr(0), chr(13)+chr(10))

* Сбрасываем результат в файл
STRTFILE(m.lcString,"New_516.txt")

* И штатно загружаем
APPEND FROM "New_516.txt" DELIMITED WITH CHARACTER '#' 




Правда, поскольку файл имеет размер в 47МБ прокачать его через переменную памяти (FileToStr()), может не получиться. Системные ограничения FoxPro на размер переменной памяти до 16МБ. Но тут можно попробовать прокачать через мемо-поле
...
Рейтинг: 0 / 0
13 сообщений из 13, страница 1 из 1
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / Перевод из txt в dbf
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]