Модераторы: Poseidon, Snowy, bems, MetalFan
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Текст в буфер обмена, из файла 
:(
    Опции темы
DragonFire
Дата 20.11.2006, 08:57 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 725
Регистрация: 14.8.2005
Где: Москва

Репутация: нет
Всего: 9



Вообщем полазил я по форуму, наклепал програмку, которая грузит текстовый файл с русскими и англискими символами и пихает его в буфер обмена, только она ну уж очень криво работает - пихает нормальный текст в 1 из 5 случаев и вообще приходится выводить буфер обмена после каждой строки.

Дык вот может кто-нибудь кинет процедуру загрузки текстового файла в буфер?


--------------------
PM MAIL ICQ   Вверх
Guedda
Дата 20.11.2006, 09:20 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Подрывник
****


Профиль
Группа: Завсегдатай
Сообщений: 3137
Регистрация: 27.12.2005
Где: Ростов-на-Дону

Репутация: 14
Всего: 78



А какой процедурой пользовался ты? Может что-то неправильно написал... Покажи код!


--------------------
Ll 2
PM MAIL WWW ICQ Skype GTalk   Вверх
DragonFire
Дата 20.11.2006, 10:11 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 725
Регистрация: 14.8.2005
Где: Москва

Репутация: нет
Всего: 9



Код кривой, я же сказал)) Вставляет построчно файл в буфер и сразу из буфера вставляет куда надо...
Код

procedure Copy(const Text :String);

  procedure SetTextBuffer (Format :Word; const Buffer; Size :Cardinal);
  var
    Data    :THandle;
    DataPtr :Pointer;
  begin
    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;
  end;

begin
  if not OpenClipBoard(0) then exit;

  try
    EmptyClipBoard;
    SetTextBuffer(CF_TEXT,                   Text [1], (Length(Text)+1)*SizeOf(    Char));
    SetTextBuffer(CF_UNICODETEXT, WideString(Text)[1], (Length(Text)+1)*SizeOf(WideChar));
  finally
    CloseClipBoard;
  end;
end;


procedure TextToForm(FileName:String);
var f:textfile;
    s:string;
begin
  assignFIle(f,FileName);
  reset(f);
  while not EOF(f) do begin
    readln(f,s);
    Copy(s);
    Past;
  end;
  closefile(f);
end;



--------------------
PM MAIL ICQ   Вверх
Guedda
Дата 20.11.2006, 10:26 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Подрывник
****


Профиль
Группа: Завсегдатай
Сообщений: 3137
Регистрация: 27.12.2005
Где: Ростов-на-Дону

Репутация: 14
Всего: 78



Есть такой класс TClipboard. Воспользуйся им.


--------------------
Ll 2
PM MAIL WWW ICQ Skype GTalk   Вверх
DragonFire
Дата 20.11.2006, 11:12 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 725
Регистрация: 14.8.2005
Где: Москва

Репутация: нет
Всего: 9



Хорошой класс - только как туда добавить массив строк? да еще и русских?


--------------------
PM MAIL ICQ   Вверх
Yanis
Дата 20.11.2006, 12:08 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Участник Клуба
Сообщений: 2937
Регистрация: 9.2.2004
Где: Москва

Репутация: 72
Всего: 111



Код
uses Clipbrd;

{ ... }

Clipboard.AsText



--------------------
user posted image *щёлк*
PM MAIL WWW ICQ   Вверх
DragonFire
Дата 20.11.2006, 12:51 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 725
Регистрация: 14.8.2005
Где: Москва

Репутация: нет
Всего: 9



Может я тупой... 
Но я не понимаю как можно с String запихнуть array of string...


--------------------
PM MAIL ICQ   Вверх
Yanis
Дата 20.11.2006, 13:00 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Участник Клуба
Сообщений: 2937
Регистрация: 9.2.2004
Где: Москва

Репутация: 72
Всего: 111



Цитата(DragonFire @  20.11.2006,  13:51 Найти цитируемый пост)
Но я не понимаю как можно с String запихнуть array of string... 

Что куда загнать?
По русски пожалуйста smile


--------------------
user posted image *щёлк*
PM MAIL WWW ICQ   Вверх
Romkin
Дата 20.11.2006, 13:55 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 189
Регистрация: 14.11.2006
Где: Москва

Репутация: 2
Всего: 5



А ты пихаешь не массив, а просто текст. Что стоит запихнуть весь текст сразу?
PM ICQ   Вверх
Romkin
Дата 20.11.2006, 14:12 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 189
Регистрация: 14.11.2006
Где: Москва

Репутация: 2
Всего: 5



Ведь похоже, что все, что тебе нужно, это 
Код

uses Clipbrd;

procedure TextToForm(FileName:String);    
var
  Stream: TStream;
  S: string;
begin
  Stream := TFileStream.Create(FileName, fmOpenRead or fmShareDenyWrite);
  try
    SetLength(S, Stream.Size);
    Stream.Read(S[1], Stream.Size);
  finally
    Stream.Free;
  end;
  Clipboard.AsText := S;
end;

PM ICQ   Вверх
DragonFire
Дата 20.11.2006, 20:02 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 725
Регистрация: 14.8.2005
Где: Москва

Репутация: нет
Всего: 9



Ура))
Кажется я добился того что хотел, спасибо)) 
Ща тестить буду!


--------------------
PM MAIL ICQ   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Delphi: Общие вопросы"
SnowyMetalFan
bemsPoseidon
Rrader

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами

  • Литературу по Дельфи обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь
  • 90% ответов на свои вопросы можно найти в DRKB (Delphi Russian Knowledge Base) - крупнейшем в рунете сборнике материалов по Дельфи


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Snowy, MetalFan, bems, Poseidon, Rrader.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Delphi: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0493 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.