Перейти из форума на сайт.

НовостиФайловые архивы
ПоискАктивные темыТоп лист
ПравилаКто в on-line?
Вход Забыли пароль? Первый раз на этом сайте? Регистрация
Компьютерный форум Ru.Board » Компьютеры » Прикладное программирование » Вопросы по Delphi

Модерирует : ShIvADeSt

ShIvADeSt (20-04-2006 01:53): http://forum.ru-board.com/topic.cgi?forum=33&topic=6679#1  Версия для печати • ПодписатьсяДобавить в закладки
Страницы: 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 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102

   

LordMAD



Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Barakuda7
Подробно напиши о чем речь - так ничего не понятно. При чем тут буфер обмена?

Всего записей: 378 | Зарегистр. 01-10-2002 | Отправлено: 08:05 23-12-2005
Barakuda7

Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Структура функции Read (var Buffer; Count: Integer).
Если я правильно понял, то при чтении из файла функцией Read от TFileStream, он прочитанное из файла помещает в буфер обмена, а у буфера обмена есть максимальный размер. И при чтении из нужного мне файла в буфере обмена все не помещается, следовательно нужная мне информация выводится туда куда я хочу не полностью, а только то, что уместилось в буфере обмена.
Покапавшись, я нашел TMemoBuf, можешь подсказать как при чтении с помощью функции Read от TFileStream из файла сделать так, чтобы функция помещала прочитанное не в буфер обмена Windows, а в буфер TMemoBuf.
TMemoBuf можно задавать максимальный размер.

Всего записей: 183 | Зарегистр. 20-03-2005 | Отправлено: 11:53 23-12-2005
LordMAD



Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Barakuda7
Бефер обмена тут не причем - он просто в этой программе НЕ ИСПОЛЬЗУЕТСЯ. Read читает данные строку W и никуда больше. Данная программа написана так, что максимальный размер файла, с котроым она может работать - 2 Gb. Опиши на каком размере файла читается не все.

Всего записей: 378 | Зарегистр. 01-10-2002 | Отправлено: 12:26 23-12-2005
MrZeRo



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
ShIvADeSt

Цитата:
>Как поместить рисунок, который бы являлся бэкграундом для данной формы. (Hе  
>растягивался, а именно заполнял всю форму)  

Я так понял, что нужно что-то вроде карты и элементов на карте, то есть фон - не для красоты, а для навигации по нему и чтобы можно было масштабировать.
 
Но вообще, мало информации по задаче.

----------
... не это главное ...

Всего записей: 832 | Зарегистр. 30-01-2002 | Отправлено: 13:46 23-12-2005
Barakuda7

Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
LordMAD
Дело в том, что я открывал этот файл блокнотом, выделял все и копировал, затем я создавал новый файл и вставлял в него то, что скопировал.
Он вставил тоже самое, что прочитала программа.
Тот же самый отрывок текста.
Потом я сохранил созданный документ и его размер составил 324 986 байт, а файл с которым я работаю весит 5 968 118.
Что скажешь?

Всего записей: 183 | Зарегистр. 20-03-2005 | Отправлено: 15:18 23-12-2005
LordMAD



Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Barakuda7

Цитата:
Дело в том, что я открывал этот файл блокнотом, выделял все и копировал, затем я создавал новый файл и вставлял в него то, что скопировал.  
Он вставил тоже самое, что прочитала программа.  
Тот же самый отрывок текста.  
Потом я сохранил созданный документ и его размер составил 324 986 байт, а файл с которым я работаю весит 5 968 118.  
Что скажешь?

Скорее всего, просле 324 986 байт, идет символ с кодом 0, что означает конец строки.
Это легко проверить: в коде где у меня стоит ShowMessage(S) - т.е. в самом конце поставь  

Код:
 
ShowMessage(Format('Считано: %d'#13#10'Длина строки: %d', [Length(S), StrLen(PChar(S))]));
 


Всего записей: 378 | Зарегистр. 01-10-2002 | Отправлено: 15:41 23-12-2005
Barakuda7

Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
LordMAD
Так и есть, что с этим можно сделать?

Всего записей: 183 | Зарегистр. 20-03-2005 | Отправлено: 16:31 23-12-2005
LordMAD



Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Barakuda7
Ну, этот символ там наверное не случайно. Что ты хочешь получить? Просто пропустить этот символ или заменить, скажем, на пробел? Цель то задачи какая?

Всего записей: 378 | Зарегистр. 01-10-2002 | Отправлено: 21:27 23-12-2005
Barakuda7

Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
LordMAD
Если не трудно опиши пожалуйста обе функции и пропуском и с пробелом.
Цель - полное считывание текста.

Всего записей: 183 | Зарегистр. 20-03-2005 | Отправлено: 22:35 24-12-2005 | Исправлено: Barakuda7, 03:05 25-12-2005
LordMAD



Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Barakuda7
1. Пропуск. Ищешь в строке символ с кодом 0 (#0) и перемещаешь часть памяти после этого символа (до следующего #0) на один сивол назад. Потом, естественно, кооректируешь размер выделенной памяти при помощи SetLength.
2. Замена. Ищешь в строке символ #0 и заменяешь его на ' ' (пробел):

Код:
 
var
  P: PChar;
  I: Integer;
...
  P := PChar(S);
  I := Length(S);
  while I > 0 do
  begin
    if P^ = #0 then P^ := ' ';
    Inc(P);
    Dec(I);
  end;
 

 

Всего записей: 378 | Зарегистр. 01-10-2002 | Отправлено: 19:26 25-12-2005
LordMAD



Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Никто еще не делал русские ресурсы для Delphi 2006 (русские строковые ресурсы и экранные формы VCL)? В варианте от Polaris все закончилось на Delphi 7, а тут понадобилось срочно, а самому некогда. Может кто уже делал?

Всего записей: 378 | Зарегистр. 01-10-2002 | Отправлено: 12:49 26-12-2005
DenSer



Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
народ, а обработка какого события происходит при нажатии на кнопку закрытия окна (крестик)?

Всего записей: 258 | Зарегистр. 06-03-2004 | Отправлено: 17:01 28-12-2005
Z MeZe



Full Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
DenSer

Цитата:
народ, а обработка какого события происходит при нажатии на кнопку закрытия окна (крестик)?

OnCloseQuery

Всего записей: 455 | Зарегистр. 09-02-2004 | Отправлено: 18:28 28-12-2005
vserd

Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
DenSer

Цитата:
обработка какого события происходит при нажатии на кнопку закрытия окна  

WM_CLOSEQUERY, WM_CLOSE. Но если говорить в  терминах компонент, тогда OnCloseQuery, OnClose.

Всего записей: 2065 | Зарегистр. 08-05-2002 | Отправлено: 13:58 29-12-2005
DenSer



Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
vserd
тогда в чем отличие события OnCloseQuery от OnClose?

Всего записей: 258 | Зарегистр. 06-03-2004 | Отправлено: 14:06 29-12-2005
LordMAD



Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
DenSer
Справку или книжки читать не пробовал?
OnCloseQuery - запрашивает возможность закрытия у приложения
OnClose - информирует о закрытии и уточняет как это сделать.

Всего записей: 378 | Зарегистр. 01-10-2002 | Отправлено: 14:24 29-12-2005
DenSer



Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
спасибо за ответы!
LordMAD не ругайся, я исправлюсь

Всего записей: 258 | Зарегистр. 06-03-2004 | Отправлено: 14:38 29-12-2005
Pinocchio

Advanced Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
LordMAD

Цитата:
Никто еще не делал русские ресурсы для Delphi 2006 (русские строковые ресурсы и экранные формы VCL)?

Ждём, ещё не видели. Они от D2005 отличаются форматом (в смысле res:32;resx:dot)? Или речь идёт о контенте?
 
Добавлено:
Всем счастливого Нового Года!

Всего записей: 683 | Зарегистр. 18-11-2002 | Отправлено: 15:17 29-12-2005
vunder



Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Как из приложения выпонить DOS-команду и прочитать ее результат. Нашел пример запуска приложения и чтение результата его выполнения, но отдельные команды не выполняются. Возвращаеться всегда результат приглашения командной строки.

Всего записей: 46 | Зарегистр. 28-10-2004 | Отправлено: 15:38 29-12-2005
Pinocchio

Advanced Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
а кто-нибудь вкурсе, как кодить/декодить русский язык из файлов InfоРаth форм?
Сам xml объявлен с кодировкой utf-8 а пробелы и прочие русские сымволы кодируются, так что даже фар в затруднении.
 
vunder
DOS команды в конце могут содержать ">имя_файла", это значит что консольный вывод будет направлен в файл. А результат приглашения, полагаю, просто остался в переменной которую ты использовал для запуска.

Всего записей: 683 | Зарегистр. 18-11-2002 | Отправлено: 16:13 29-12-2005
   

Страницы: 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 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102

Компьютерный форум Ru.Board » Компьютеры » Прикладное программирование » Вопросы по Delphi
ShIvADeSt (20-04-2006 01:53): http://forum.ru-board.com/topic.cgi?forum=33&topic=6679#1


Реклама на форуме Ru.Board.

Powered by Ikonboard "v2.1.7b" © 2000 Ikonboard.com
Modified by Ru.B0ard
© Ru.B0ard 2000-2025

BitCoin: 1NGG1chHtUvrtEqjeerQCKDMUi6S6CG4iC

Рейтинг.ru