Форум: "Начинающим";
Текущий архив: 2008.05.04;
Скачать: [xml.tar.bz2];
ВнизКопирование Найти похожие ветки
← →
AndrewG (2008-04-05 22:13) [0]Копирую текст из MS word 2003
но потом при вставке из буфера в обычный текстовый файл, в тексте вместо перехода на новую строку отображаются прямоугольнички
Подскажите, пожалуйста
Вот как копирую:
procedure Tmain.CopyToClipboard(const aText: string);
var
wText: WideString;
begin
if Win32Platform = VER_PLATFORM_WIN32_NT then begin
wText := aText;
SetBuffer(CF_UNICODETEXT, wText[1], (Length(wText) + 1) * 2)
end else
Clipboard.AsText := aText
end;
procedure Tmain.SetBuffer(Format: Word; var Buffer; Size: Integer);
var
Data: THandle;
DataPtr: Pointer;
begin
OpenClipboard(0);
try
Data := GlobalAlloc(GMEM_MOVEABLE+GMEM_DDESHARE, Size);
try
DataPtr := GlobalLock(Data);
try
Move(Buffer, DataPtr^, Size);
SetClipboardData(Format, Data);
finally
GlobalUnlock(Data);
end;
except
GlobalFree(Data);
raise;
end;
finally
CloseClipboard;
end;
end;
С П А С И Б О
← →
palva © (2008-04-05 22:25) [1]А почему вы не хотите сказать код этих прямоугольничков? И почему вы думаете, что вместо них должен быть переход на новую строку?
← →
Оригинал (2008-04-05 22:26) [2]1. Из буфера в файл каким образом вставляется?
2. Шестнадцатеричный код "квадратиков" какой?
← →
AndrewG (2008-04-05 22:35) [3]
> И почему вы думаете, что вместо них должен быть переход
> на новую строку?
Так как в Ворде переход на новую строку есть, а после копирования получаются прямоугольнички...
или если написать так
Memo1.lines.add(Clipboard.astext),то тоже появляются вертикальные палки...
код "квадратикрв" 0A
← →
Оригинал (2008-04-05 22:40) [4]
> код "квадратикрв" 0A
А должо быть 0d0a
← →
VirEx © (2008-04-05 23:26) [5]#10 начало новой строки
#13 конец строки
в windows должно быть что-то вроде такого (ежели память не изменяет):
str:="line1"#13#10;
str:=str+"line2"
или наоборот)
← →
palva © (2008-04-05 23:47) [6]Коды называются так:
#13 возврат каретки
#10 перевод строки
← →
AndrewG (2008-04-05 23:58) [7]
> palva © (05.04.08 23:47) [6]
> Коды называются так:#13 возврат каретки#10 перевод строки
Спасибо, что расказал, что как называется,
но а как исправить??? может после копирования не хватает #13 или #10
Тогда как их восстановить???
С П А С И Б О
← →
palva © (2008-04-06 00:23) [8]> Так как в Ворде переход на новую строку есть, а после копирования получаются прямоугольнички...
Переход на новую строку в Word не означает, что в буфере тоже должен быть переход на новую строку. Должны переноситься только символы конца параграфа, а весь параграф выглядеть единой строкой. Ну это вообще говоря. Может быть вы добиваетесь чего-то другого. Вашего кода я вообще не понял, что и зачем. И где там присутствует взаимодействие с Word. И зачем там GlobalAlloc. Скорее всего я чего-то не понимаю.
← →
AndrewG (2008-04-06 20:45) [9]Проблема решена. Разобрался
Всем спасибо.=)
Страницы: 1 вся ветка
Форум: "Начинающим";
Текущий архив: 2008.05.04;
Скачать: [xml.tar.bz2];
Память: 0.46 MB
Время: 0.005 c