Отправляет email-рассылки с помощью сервиса Sendsay
  Все выпуски  

RusFAQ.ru: Программирование на Delphi


Информационный Канал Subscribe.Ru


RusFAQ.ru: Программирование на C++ Builder / Delphi

Выпуск № 305
от 18.03.2004, 02:20

Администратор:
Имя: Калашников О.А.
URL: Информационный ресурс
ICQ: 68951340
Россия, Москва
О рассылке:
Задано вопросов: 1422
Отправлено ответов: 3195
Активность: 224.6 %
[Задать вопрос >>][Регистрация эксперта >>]
[Поиск в базе][Обсудить на форуме]


 Список экспертов, ответы которых опубликованы в данном выпуске

THE_PRO
Статус: Профессиональный
Общий рейтинг: 138
URL: THE_PRO
Телефон: (994 +12) 989647
[Подробней >>]
sir henry
Статус: Профессиональный
Общий рейтинг: 158.63
[Подробней >>]
samum2000
Статус: Профессиональный
Общий рейтинг: 131.54
[Подробней >>]
 
Boriss
Статус: Профессиональный
Общий рейтинг: 154.9
URL: Программирование на Паскале
[Подробней >>]
Pawel
Статус: Профессиональный
Общий рейтинг: 162.57
[Подробней >>]


 Краткий перечень вопросов

Вопрос № 1409. Приветствую Вас! Я указываю в ListBox'e, например, n (n < 10) URL-адресов. Как мне с помощью Delphi... (ответов: 5)
Вопрос № 1410. Пояснение к вопросу 1409. Извините за не корректный вопрос. Задача значит такая: пишем в listBox'... (ответов: 3)
Вопрос № 1411. Среда разработки - дельфи 6 программа - что делает не важно.. тама все правильно раздражает то, что ... (ответов: 5)
Вопрос № 1412. Здраствуйте уважаимые мои! Короче функция компилируеца но при вызове выпрыгивает ERROR. Ето я не так... (ответов: 4)
Вопрос № 1413. Приветствую! значит делаю так: MSWord: Variant; ... MsWord := CreateOleObject('Word.Application'); M... (ответов: 2)

Вопросов: 5, ответов: 19


 Вопрос № 1409

Приветствую Вас!
Я указываю в ListBox'e, например, n (n < 10) URL-адресов. Как мне с помощью Delphi сохранить их на винч (с картинками или в виде *.mht-файлов) и можно ли это сделать в n потоков? И вообще, где можно почитать о работе в Delphi c Интернет? Спасибо.



Вопрос отправлен: 13.03.2004, 08:27
Отправитель: Ole

[Следующий вопрос >>] [Список вопросов]

Отвечает THE_PRO

Приветствую Вас, Ole!
Po luchshe obyasni!

Ответ отправлен: 13.03.2004, 09:35
Отправитель: THE_PRO


Отвечает sir henry

Доброе время суток, Ole!
1. А Вы не можете переформулировать вопрос? Чтобы сохранить менее чем 10 URL (даже весьма большой длины) хватит каких-то долей секунды, без всякой многопоточности. Видимо Вы что-то другое именли в виду :)).
2. Зайдите на http://www.podgoretsky.com/ddp.html и скачайте оттуда документик под названием "Интернет решения от доктора Боба". Кроме этого, там есть еще масса любопытных документов по Дельфи.

Ответ отправлен: 13.03.2004, 09:25
Отправитель: sir henry


Отвечает samum2000

Приветствую вас,Ole!
Можно использовать такую фунцию (в секцию uses надо добавить URLMon и ShellApi).
function DownloadFile(SourceFile, DestFile: string): Boolean;
begin
try
Result := UrlDownloadToFile(nil, PChar(SourceFile), PChar(DestFile), 0, nil) = 0;
except
Result := False;
end;
end;
--------------------------
-=Experts helper: testmode=-

Ответ отправлен: 14.03.2004, 11:43
Отправитель: samum2000


Отвечает Boriss

Добрый день, Ole!
Посмотри, например,
http://www.proglib.ru/articles/art0000011.asp
http://rsdn.ru/article/qna/inet/email.xml
http://www.winsov.com/delphi062.php
А почему бы через потоки и нет? Твоя программа - это тоже поток :))

Ответ отправлен: 13.03.2004, 14:20
Отправитель: Boriss


Отвечает Pawel

Добрый день, Ole!
В потоке можно, твоя прога - это и есть поток.

Ответ отправлен: 14.03.2004, 12:34
Отправитель: Pawel


 Вопрос № 1410

Пояснение к вопросу 1409.
Извините за не корректный вопрос. Задача значит такая:
пишем в listBox'e URL-адрес и жмем на Button. Происходит подключение к Интеу и скачивание этой странички на винч (типа offline explorer'a только без уровней). Я не знаю как реализовать функцию сохранения этой странички. Подскажите. Теперь вроде порядок. Ole.



Вопрос отправлен: 13.03.2004, 12:23
Отправитель: Ole

[Следующий вопрос >>] [Список вопросов]

Отвечает samum2000

Приветствую вас,Ole!
Можно еще такую функцию использовать:
function DownloadFile(const FileURL, FileName: String): Cardinal;
var
hSession, hFile: HInternet;
Buffer: array[1..1024] of Byte;
BufferLen, fSize: LongWord;
f: File;
begin
Result := 0;
hSession := InternetOpen('STEROID Download',
INTERNET_OPEN_TYPE_PRECONFIG, nil, nil, 0);
if Assigned(hSession) then begin
hFile := InternetOpenURL(hSession, PChar(FileURL), nil, 0,
INTERNET_FLAG_RELOAD, 0);
if Assigned(hFile) then begin
AssignFile(f, FileName);
Rewrite(f,1);
fSize := 0;
repeat
InternetReadFile(hFile, @Buffer, SizeOf(Buffer), BufferLen);
BlockWrite(f, Buffer, BufferLen);
fSize := fSize + BufferLen;
until (BufferLen = 0);
CloseFile(f);
Result := fSize;
InternetCloseHandle(hFile);
end;
InternetCloseHandle(hSession);
end;
end;
--------------------------
-=Experts helper: testmode=-

Ответ отправлен: 14.03.2004, 11:47
Отправитель: samum2000


Отвечает Boriss

Добрый день, Ole!
Только что отослал ответ с ссылками на статьи. Повторю:
http://www.proglib.ru/articles/art0000011.asp
как качать файлы с помощью Delphi

Ответ отправлен: 13.03.2004, 14:23
Отправитель: Boriss


Отвечает THE_PRO

Доброе время суток, Ole!
Ispolzuy klass TDownlodURL

Ответ отправлен: 15.03.2004, 16:01
Отправитель: THE_PRO


 Вопрос № 1411

Среда разработки - дельфи 6
программа - что делает не важно.. тама все правильно
раздражает то, что из-за hint'ов не хочет запускаться.. что делать??
Сonsole apllication
причем хинты типа "переменная определена, но не используется ( а она очень даже используется =/ )
Прога большая - не поместилася, да и думаю, не очень нужна в этой ситуации



Вопрос отправлен: 13.03.2004, 21:29
Отправитель: Эланор (cymoril@mail.ru)

[Следующий вопрос >>] [Список вопросов]

Отвечает Boriss

Добрый день, Эланор!
До сих пор не видел программы, которая из-за hint'ов не хочет загружаться в Выньдах.
А вот консольное - у него ведь нет методов для обработки таких штук - можно думать о такой программе, как о ДОС-овской. Она ничего не умеет
Поэтому, хоть критическую часть кода Вашей программы привести надо. Создайте маленькую демку с той-же проблемой, чтобы можно было понять, что Вы "не так" делаете

Ответ отправлен: 15.03.2004, 10:40
Отправитель: Boriss


Отвечает samum2000

Приветствую вас,Эланор!
Я думаю, что дело не в хинтах - это даже не предупреждения, а просто подсказки. Может у вас где-то среди них затерялся Error?
Если другие, более простые консольные приложения компилируются, то ошибка в вашем проекте, если нет - то, может быть, в настройках.
--------------------------
-=Experts helper: testmode=-

Ответ отправлен: 14.03.2004, 11:51
Отправитель: samum2000


Отвечает Pawel

Приветствую Вас, Эланор!
Из-за hint'ов??? Всё должно работать. Либо у вас ошибка в проге, либо она отрабатывает, но незаметно для вас.


Ответ отправлен: 14.03.2004, 12:39
Отправитель: Pawel


Отвечает sir henry

Доброе время суток, Эланор!
Хинты - это всего лишь советы компилятора, это не ошибка, поэтому из-за них незапускаться она не может. Может быть все-таки гдето ошибочку пропустили?
Это с одной стороны. Не запускается - ладно. А она компилируется? Это важный момент. Попробуйте ее скомпилировать в командной строке. Для этого в первую строку программы должно быть внесено:
{$APPTYPE CONSOLE}
тогда компилируется так:
dcc32 Ваш_файл.dpr

Ответ отправлен: 15.03.2004, 13:19
Отправитель: sir henry


Отвечает THE_PRO

Здравствуйте, Эланор!
Nu i che eto znachit... kakoy vopros to ?

Ответ отправлен: 15.03.2004, 15:59
Отправитель: THE_PRO


 Вопрос № 1412

Здраствуйте уважаимые мои!
Короче функция компилируеца но при вызове выпрыгивает ERROR.
Ето я не так файл читаю наверно, виправите мне ошибку. Если вас незатруднит


Приложение:


Вопрос отправлен: 14.03.2004, 07:46
Отправитель: OL

[Следующий вопрос >>] [Список вопросов]

Отвечает Pawel

Доброе время суток, OL!
CloseFile(h) попробуйте

Ответ отправлен: 14.03.2004, 12:56
Отправитель: Pawel


Отвечает Boriss

Здравствуйте, OL!
1) Вы уверены, что файл открылся? То есть, может нечего закрывать. Хотя бы какое сообщение об ошибке.
2) Может Pavel и прав - handle на файл - это особый тип дескриптора
3) что делает ReadFile - не закрывает ли?

Ответ отправлен: 15.03.2004, 10:49
Отправитель: Boriss


Отвечает samum2000

Приветствую вас,OL!
Писать, вроде, надо так:
h:=createfile(FileName, GENERIC_READ, FILE_SHARE_READ, nil, OPEN_EXISTING, 0, 0);
Зачем эта вставка на asm'е? Неужели нельзя написать
ReadFile(h, s1, 65525, m, nil); //Да, m должна быть типа DWORD (cardinal)!
И еще, посмотрите в приложении, как это же можно реализовать проще (на мой взгляд).
--------------------------
-=Experts helper: testmode=-

Приложение:

Ответ отправлен: 15.03.2004, 12:10
Отправитель: samum2000


Отвечает sir henry

Здравствуйте, OL!
Вы зря не проверяете, что у Вас выдает функция CreateFile. Может быть файл никакой и не открывается? :))
Имя файла сделайте лучше PChar или, если хотите, то приводите его к типу PChar:
FileName: string;
h:=CreateFile(PChar(FileName), ...);

Ответ отправлен: 15.03.2004, 13:39
Отправитель: sir henry


 Вопрос № 1413

Приветствую! значит делаю так:
MSWord: Variant;
...
MsWord := CreateOleObject('Word.Application');
MSWord.ActiveDocument.Content.Find.ClearFormatting;
MSWord.ActiveDocument.Content.Find.Replacement.ClearFormatting;
MSWord.ActiveDocument.Content.Find.Execute(FindText:='#строка', ReplaceWith:='', Replace:=1);
Как после того как он нашел слово '#строка' и заменил на '', мне необходимо вставить текст (много строк - заменой не получается, пишет слишком длинный аргумент), у меня он вставляет в их в конец документа, а нужно сразу после заменяемого слова...
MSWord.ActiveDocument.Range.InsertAfter(Text:=ms_value);
я думаю надо получить позицию курсора после замены и вставить в
MSWord.ActiveDocument.Range(Start := vstart,end := vend).Select;
Но вот как получить vstart?



Вопрос отправлен: 14.03.2004, 20:36
Отправитель: Ландграф Павел

[Следующий вопрос >>] [Список вопросов]

Отвечает sir henry

Здравствуйте, Ландграф Павел!
Вам нужно получить Range от начала документа до позиции курсора, тогда вставит куда нужно.

Ответ отправлен: 15.03.2004, 13:42
Отправитель: sir henry


Отвечает samum2000

Приветствую вас,Ландграф Павел!
Попробуй процедуру из приложения. Может так будет удобней.
--------------------------
-=Experts helper: testmode=-

Приложение:

Ответ отправлен: 15.03.2004, 13:47
Отправитель: samum2000



Форма отправки вопроса

Внимание!
Мы рекомендуем открывать рассылку в программе Internet Explorer 5.0+ или отправлять вопросы с сайта по адресу: http://rusfaq.ru/cgi-bin/Message.cgi.

(C) 2002-2003 Команда RusFAQ.ru.

 Персональные данные

Ваше имя:

Ваш e-mail:

Опубликовать мой e-mail в рассылке


 Вопрос и дополнение

Ваш вопрос:


Приложение (если необходимо):


Получить ответов:


 Выбор рассылки

Программисту
Assembler (28)
C / C++ (21)
Perl (4)
Builder / Delphi (21)
Pascal (24)
Basic / VBA (7)
Java / JavaScript (8)
PHP (14)
Криптография (8)
WinAPI (17)
Радиоэлектроника (10)
Пользователю
Windows 95/98/Me (42)
Windows NT/2000/XP (58)
"Железо" (35)
Поиск информации (22)
Администратору
Windows NT/2000/XP (28)
Linux / Unix (13)
Юристу
Гражданское право (13)
Семейное право (12)
Трудовое право (12)
КоАП (9)

Отправить вопрос всем экспертам выбранной рассылки.




Задать вопрос | Регистрация эксперта | Поиск в базе | Чат | Форумы | Новости
Проект экспертов RusFAQ.ru | Фотоальбом | Virus.RusFAQ.ru | Администрирование
Профессиональная WEB-Студия B.I.T.


Яндекс цитирования
© 2001-2004 Россия, Москва. Авторское право: Калашников О.А.

http://subscribe.ru/
E-mail: ask@subscribe.ru
Отписаться
Убрать рекламу


В избранное