Гость
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / Скопировать текст из ячейки и вставить в другую / 16 сообщений из 16, страница 1 из 1
08.02.2017, 10:51
    #39400686
Omarr
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Скопировать текст из ячейки и вставить в другую
Добрый день. Есть таблица с данными типа

word translationабрикос перевод 1абрикос перевод 2абрикос перевод 3яблоко перевод 1яблоко перевод 2

Можно ли сделать такое запросом: 1. Вырезать для слова например абрикос, из всех записей кроме первого абрикос из ячейки translation текст и добавить в конец колонки translation первой записи абрикос, тоже самое с яблоком и т.д.

чтобы в итоге получилось так:

word translationабрикос перевод 1 \n\n перевод 2 \n\n перевод 3абрикос пустоабрикос пустояблоко перевод 1 \n\n перевод 2яблоко пусто

Я понимаю что запутанно написал, но думаю по таблице видно как должно в итоге получиться
...
Рейтинг: 0 / 0
08.02.2017, 11:41
    #39400717
Скопировать текст из ячейки и вставить в другую
Omarr,

Запросом с UDF можно. Весь вопрос в нужности.
...
Рейтинг: 0 / 0
08.02.2017, 11:44
    #39400720
Omarr
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Скопировать текст из ячейки и вставить в другую
правильный проходящий., нужно. В ручную по 20 тысяч записей обрабатывать из нескольких файлов как-то не то. Очень много времени пройдет
...
Рейтинг: 0 / 0
08.02.2017, 11:54
    #39400723
Скопировать текст из ячейки и вставить в другую
Omarrправильный проходящий., нужно. В ручную по 20 тысяч записей обрабатывать из нескольких файлов как-то не то. Очень много времени пройдетДля чего нужно? Какие 20 тысяч записей? Какие файлы? И точно это все нужно именно запросом?
...
Рейтинг: 0 / 0
08.02.2017, 12:00
    #39400729
Omarr
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Скопировать текст из ячейки и вставить в другую
правильный проходящий.,

1. Это нужно чтобы в БД в итоге у меня оказались в колонке word уникальные значения, а повторные переводы оказались в колонке translation.

2. это слова из национального языка. и есть два файла с такого рода записями. В данный момент в формате xlsx, но я могу переконвертировать например в sqlite, в dbf пробовал, но у меня не открылись таблицы т.к. в колонке translation много текста оказывается

3. Делать запросом необязательно, главное как-то сделать :)
...
Рейтинг: 0 / 0
08.02.2017, 12:21
    #39400753
Скопировать текст из ячейки и вставить в другую
Omarrправильный проходящий.,

1. Это нужно чтобы в БД в итоге у меня оказались в колонке word уникальные значения, а повторные переводы оказались в колонке translation. Так в БД или таки в Word? Если "в word" еще понимаю, то "в БД" не понимаю напрочь.
2. это слова из национального языка. и есть два файла с такого рода записями. В данный момент в формате xlsx, но я могу переконвертировать например в sqlite, в dbf пробовал, но у меня не открылись таблицы т.к. в колонке translation много текста оказываетсяНе надо конвертировать, надо просто из этих файлов выдрать нужную инфу.
3. Делать запросом необязательно, главное как-то сделать :)Ну слава всевышнему. Образец файла для пробы можно увидеть?
...
Рейтинг: 0 / 0
08.02.2017, 12:32
    #39400764
Omarr
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Скопировать текст из ячейки и вставить в другую
правильный проходящий., word имеется ввиду колонка из таблицы, а не программа Word. прикладываю фрагмент файла, там немного записей, но для образца хватит думаю?
...
Рейтинг: 0 / 0
08.02.2017, 16:56
    #39401103
Omarr
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Скопировать текст из ячейки и вставить в другую
Кто подскажет как это можно реализовать?
...
Рейтинг: 0 / 0
08.02.2017, 17:22
    #39401132
rock-n-roll
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Скопировать текст из ячейки и вставить в другую
правильный проходящий.,

100% прекрасно понял чего хочет автор с первого же поста.. ну а дальше в своем стиле - загадочность наше все

Omarr,

Проходящий в своем стиле
А мог просто сказать 2 слова :"Запросом будет сложно, а простым перебором элементарно "
так нибудь так
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
CREATE TABLE C:\Test (fild1 c(10),fild2 c(100),l l)
INSERT INTO Test(fild1,fild2)value('ÿáëîêî', 'ïåðåâîä1')
INSERT INTO Test(fild1,fild2)value('àáðèêîñ','ïåðåâîä2')
INSERT INTO Test(fild1,fild2)value('ÿáëîêî', 'ïåðåâîä3')
INSERT INTO Test(fild1,fild2)value('àáðèêîñ','ïåðåâîä4')
INSERT INTO Test(fild1,fild2)value('àðáóç'  ,'ïåðåâîä5')
INSERT INTO Test(fild1,fild2)value('àðáóç'  ,'ïåðåâîä6')
INSERT INTO Test(fild1,fild2)value('àðáóç'  ,'ïåðåâîä7')
INDEX ON fild1 TAG fild1
SET ORDER TO 1


cF1=ALLTRIM(Test.fild1) 
cF2=ALLTRIM(Test.fild2)
REPLACE fild2 WITH 'ïóñòî' 
IsFirst=.t.

SCAN
  If IsFirst&&&ïðîñòî ïðîïóñêàåì ïåðâóþ
     IsFirst=.f.
  ELSE      
	IF cF1==ALLTRIM(Test.fild1)
   	   cF2=cF2+' \n\n '+ALLTRIM(Test.fild2 )       
	ELSE
        SKIP -1
        REPLACE fild2 WITH  cF2
        SKIP 1
        cF2=ALLTRIM(Test.fild2)
	ENDIF 
	REPLACE fild2 WITH 'ïóñòî' 
	cF1=ALLTRIM(Test.fild1) 
   ENDIF 
ENDSCAN 

GO bottom 
REPLACE fild2 WITH  cF2  
browse
...
Рейтинг: 0 / 0
08.02.2017, 17:24
    #39401136
rock-n-roll
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Скопировать текст из ячейки и вставить в другую
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
CREATE TABLE C:\Test (fild1 c(10),fild2 c(100),l l)
INSERT INTO Test(fild1,fild2)value('ÿáëîêî', 'ïåðåâîä1')
INSERT INTO Test(fild1,fild2)value('àáðèêîñ','ïåðåâîä2')
INSERT INTO Test(fild1,fild2)value('ÿáëîêî', 'ïåðåâîä3')
INSERT INTO Test(fild1,fild2)value('àáðèêîñ','ïåðåâîä4')
INSERT INTO Test(fild1,fild2)value('àðáóç'  ,'ïåðåâîä5')
INSERT INTO Test(fild1,fild2)value('àðáóç'  ,'ïåðåâîä6')
INSERT INTO Test(fild1,fild2)value('àðáóç'  ,'ïåðåâîä7')
INDEX ON fild1 TAG fild1
SET ORDER TO 1


cF1=ALLTRIM(Test.fild1) 
cF2=ALLTRIM(Test.fild2)
REPLACE fild2 WITH 'ïóñòî' 
IsFirst=.t.

SCAN
  If IsFirst&&&ïðîñòî ïðîïóñêàåì ïåðâóþ
     IsFirst=.f.
  ELSE      
	IF cF1==ALLTRIM(Test.fild1)
   	   cF2=cF2+' \n\n '+ALLTRIM(Test.fild2 )       
	ELSE
        SKIP -1
        REPLACE fild2 WITH  cF2
        SKIP 1
        cF2=ALLTRIM(Test.fild2)
	ENDIF 
	REPLACE fild2 WITH 'ïóñòî' 
	cF1=ALLTRIM(Test.fild1) 
   ENDIF 
ENDSCAN 

GO bottom 
REPLACE fild2 WITH  cF2  
browse

rock-n-roll,
...
Рейтинг: 0 / 0
08.02.2017, 17:26
    #39401139
rock-n-roll
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Скопировать текст из ячейки и вставить в другую
ебсь какото
...
Рейтинг: 0 / 0
08.02.2017, 17:30
    #39401144
Dima T
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Скопировать текст из ячейки и вставить в другую
rock-n-roll,

1. В фоксе включай русский перед тем как копировать.
2. Есть кнопка "Предварительный просмотр"
...
Рейтинг: 0 / 0
08.02.2017, 17:36
    #39401148
Dima T
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Скопировать текст из ячейки и вставить в другую
Лучше результат писать в другое место, например в курсор
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
CREATE cursor Test (fild1 c(10),fild2 c(10),l l)
INSERT INTO Test(fild1,fild2)value('яблоко', 'перевод1')
INSERT INTO Test(fild1,fild2)value('абрикос','перевод2')
INSERT INTO Test(fild1,fild2)value('яблоко', 'перевод3')
INSERT INTO Test(fild1,fild2)value('абрикос','перевод4')
INSERT INTO Test(fild1,fild2)value('арбуз'  ,'перевод5')
INSERT INTO Test(fild1,fild2)value('арбуз'  ,'перевод6')
INSERT INTO Test(fild1,fild2)value('арбуз'  ,'перевод7')
INDEX ON fild1 TAG fild1
SET ORDER TO fild1

create Cursor res (f1 c(10), f2 c(100))
sele test
scan
	if test.fild1 != res.f1
		insert into res (f1, f2) values (test.fild1, test.fild2)
	else
		repl in res f2 with alltrim(res.f2) + ' /n/n ' + test.fild2
	endif
endscan
sele res
brow
return
...
Рейтинг: 0 / 0
08.02.2017, 22:18
    #39401285
Omarr
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Скопировать текст из ячейки и вставить в другую
Спасибо большое. Запустил программу, работает. Только у меня такой вопрос. А как быть, если допустим в колонке translation слишком большой текст и сохранив из xlsx в dbf открыть dbf-ку не получается? В каком формате сохранить?
...
Рейтинг: 0 / 0
09.02.2017, 05:24
    #39401346
rock-n-roll
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Скопировать текст из ячейки и вставить в другую
Omarr,

Если текст длинней 256 для работы выбирай поле Memo
Как по мне, здесь не стоит лезть в тематику импорт/експорт, прямые и кривые сборки и кряки,
а опять же тупо перебрать, указав что желаемое поле - Memo
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
CREATE CURSOR test ( world c(10),translation M) 
oExel=CREATEOBJECT("Excel.Application")
oExel.Workbooks.Open(GETFILE())

FOR i=2 TO 58&&сколько у тебя там строк,без 1й -заголовка
   INSERT INTO test(world,translation)value(oExel.Cells(i,1).Text,oExel.Cells(i,2).Text)
NEXT    

browse
...
Рейтинг: 0 / 0
09.02.2017, 08:48
    #39401374
Omarr
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Скопировать текст из ячейки и вставить в другую
rock-n-roll, спасибо
...
Рейтинг: 0 / 0
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / Скопировать текст из ячейки и вставить в другую / 16 сообщений из 16, страница 1 из 1
Целевая тема:
Создать новую тему:
Автор:
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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