powered by simpleCommunicator - 2.0.51     © 2025 Programmizd 02
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / Скопировать текст из ячейки и вставить в другую
16 сообщений из 16, страница 1 из 1
Скопировать текст из ячейки и вставить в другую
    #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
Скопировать текст из ячейки и вставить в другую
    #39400717
Omarr,

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

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

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

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

1. Это нужно чтобы в БД в итоге у меня оказались в колонке word уникальные значения, а повторные переводы оказались в колонке translation. Так в БД или таки в Word? Если "в word" еще понимаю, то "в БД" не понимаю напрочь.
2. это слова из национального языка. и есть два файла с такого рода записями. В данный момент в формате xlsx, но я могу переконвертировать например в sqlite, в dbf пробовал, но у меня не открылись таблицы т.к. в колонке translation много текста оказываетсяНе надо конвертировать, надо просто из этих файлов выдрать нужную инфу.
3. Делать запросом необязательно, главное как-то сделать :)Ну слава всевышнему. Образец файла для пробы можно увидеть?
...
Рейтинг: 0 / 0
Скопировать текст из ячейки и вставить в другую
    #39400764
Omarr
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
правильный проходящий., word имеется ввиду колонка из таблицы, а не программа Word. прикладываю фрагмент файла, там немного записей, но для образца хватит думаю?
...
Рейтинг: 0 / 0
Скопировать текст из ячейки и вставить в другую
    #39401103
Omarr
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Кто подскажет как это можно реализовать?
...
Рейтинг: 0 / 0
Скопировать текст из ячейки и вставить в другую
    #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
Скопировать текст из ячейки и вставить в другую
    #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
Скопировать текст из ячейки и вставить в другую
    #39401139
rock-n-roll
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ебсь какото
...
Рейтинг: 0 / 0
Скопировать текст из ячейки и вставить в другую
    #39401144
Dima T
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
rock-n-roll,

1. В фоксе включай русский перед тем как копировать.
2. Есть кнопка "Предварительный просмотр"
...
Рейтинг: 0 / 0
Скопировать текст из ячейки и вставить в другую
    #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
Скопировать текст из ячейки и вставить в другую
    #39401285
Omarr
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Спасибо большое. Запустил программу, работает. Только у меня такой вопрос. А как быть, если допустим в колонке translation слишком большой текст и сохранив из xlsx в dbf открыть dbf-ку не получается? В каком формате сохранить?
...
Рейтинг: 0 / 0
Скопировать текст из ячейки и вставить в другую
    #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
Скопировать текст из ячейки и вставить в другую
    #39401374
Omarr
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
rock-n-roll, спасибо
...
Рейтинг: 0 / 0
16 сообщений из 16, страница 1 из 1
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / Скопировать текст из ячейки и вставить в другую
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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