Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2008.05.04;
Скачать: CL | DM;

Вниз

Копирование   Найти похожие ветки 

 
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;
Скачать: CL | DM;

Наверх




Память: 0.48 MB
Время: 0.012 c
3-1196414781
Ega23
2007-11-30 12:26
2008.05.04
Вопрос по устройству SP в FireBird


15-1205931726
@!!ex
2008-03-19 16:02
2008.05.04
Аналог property в C++


2-1207750959
иванс
2008-04-09 18:22
2008.05.04
SC_DRAGMOVE


2-1207655460
molodoi
2008-04-08 15:51
2008.05.04
Проблема с динамическим добавлением полей


2-1207431431
Danco
2008-04-06 01:37
2008.05.04
Помогите пожалуйста со сравнением двух рисунков.