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

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


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

РАССЫЛКИ ПОРТАЛА RUSFAQ.RU

/ КОМПЬЮТЕРЫ И ПО / Языки программирования / Delphi

Выпуск № 108
от 27.04.2005, 01:20

Администратор:Калашников О.А.
В номере:Вопросов: 3, Ответов: 16


Вопрос № 20040: Ув. эксперты. Я как то задавал вопрос но мне так ни кто и не ответил. 1-е как можно обратиться к службе сообщений, чтобы отправить сообщение по заданному IP. 2-е Что нужно сделать чтобы в консольных приложениях (без VCL) отображался русск...
Вопрос № 20064: Здраствуйте эксперты!!! Подскажите пожалуйста вот я хочу сделать программу похожую на Microsoft access. Так вот мне надо знать а как например из моей программы запустить БД сделанную на Access. И где можно достать новые компаненты для Del...
Вопрос № 20069: Хочу присвоить компоненту имя (Name), которое хранится в переменной типа String, но эта переменная начинается с символов :#. Как отфильтровать эти символ или как присвоить компонету имя начиная с третьего символа переменной? ListBox1.Name:=??????...

Вопрос № 20040
Ув. эксперты.
Я как то задавал вопрос но мне так ни кто и не ответил.
1-е как можно обратиться к службе сообщений, чтобы отправить сообщение по заданному IP.
2-е Что нужно сделать чтобы в консольных приложениях (без VCL) отображался русский текст под ХР, 2к. Нужно настроить autoexec.bat а как это сделать.
Отправлен: 21.04.2005, 02:01
Вопрос задал: KolesnikovAV (статус: Посетитель)
Всего ответов отправлено: 6

Отвечает: John Freeman
Здравствуйте, KolesnikovAV!
1) читать про mailslots или банально winexec(pchar('net send ip "text"'),0);
2) Ничего - просто либо перекодировать на лету в cp866, либо проект перед компиляцией перекодировать в cp866(я вообще сразу в фаре пишу), для корректно поставленных виндов руссификатор нужен только в полноэкранном режиме(RTFM), для 9х не нужен вообще, для 2к/xp... autoexec.bat вообще не при делах, а для 9х знать уже надо.
Ответ отправил: John Freeman (статус: Профессор)
Отправлен: 21.04.2005, 02:21

Отвечает: sir henry
Здравствуйте, KolesnikovAV!
2. Консольное приложение - это типа DOS, следовательно и кодировка там должна быть досовской. Если Вы пишете консольную программу в IDE, то в ней у Вас кодировка виндоусная.
Самый простой способ пишите исходник в FAR'e (например). Там вновь создаваемый текстовый файл по умолчанию имеет кодировку ДОС.
Можно еще поменять кодировку консоли, но я это делать не рекомендую, т.к. в 9х консоли тогда будет отображаться абракадабра вместо русских букв.
Пример myprog.dpr:
{$APPTYPE CONSOLE}
Program myprog;
{Далее пишете то, что Вам нужно}
End.
После этого компилируете:
dcc32 myprog.dpr
Ответ отправил: sir henry (статус: Профессор)
Отправлен: 21.04.2005, 05:49

Отвечает: Stamm
Здравствуйте, KolesnikovAV!
Я отвечу только на первый вопрос:
WinExeC(Pchar('Net Send '+IP+Message));
Ответ отправил: Stamm (статус: 1-ый класс)
Отправлен: 21.04.2005, 07:33

Отвечает: Rusland
Здравствуйте, KolesnikovAV!
2) скорее всего нужно выводить в Dos кодировке
Ответ отправил: Rusland (статус: 2-ой класс)
Отправлен: 21.04.2005, 09:47

Отвечает: Trer
Здравствуйте, KolesnikovAV!
2) можно использовать процедуры модуля Windows
- CharToOem - для преобразования текста на русском в кодировку консоли
- OemToChar - для обратного пребразования

Приложение:

Ответ отправила: Trer (статус: 1-ый класс)
Отправлен: 21.04.2005, 10:19
Оценка за ответ: 5
Комментарий оценки:
Суппер, это то что мне было нужно.

Отвечает: And1
Здравствуйте, KolesnikovAV!
1) Для того чтобы отправлять сообщения через данную службу должны быть включены следующие службы: "Plug and Play", "Интерфейс NetBios", "Рабочая станция", "Удалённый вызов процедур (RPC)", "Служба сообщений". А отправлять сообщение можно командой net sent. Я сам когда-то писал такой "флудер", см код в приложении... Поясню код: Edit1 - Ip адрес, Edit2 - Сообщение, Edit3 - количество сообщений.
А по нажатию кнопки вызываем команду net sent (кстати, её синтаксис можно почитать если набрать в коммандной строке net sent /? )

Приложение:

Ответ отправил: And1 (статус: 1-ый класс)
Отправлен: 21.04.2005, 10:34
Оценка за ответ: 5
Комментарий оценки:
Замечательно, огромное при огромное спасибо


Вопрос № 20064
Здраствуйте эксперты!!!
Подскажите пожалуйста вот я хочу сделать программу похожую на Microsoft access.
Так вот мне надо знать а как например из моей программы запустить БД сделанную на Access.
И где можно достать новые компаненты для Delphi 2005(7)
Спасибо за ранее!!!
Отправлен: 21.04.2005, 16:53
Вопрос задал: newinfo2005 (статус: 1-ый класс)
Всего ответов отправлено: 4

Отвечает: Алексей Владимирович
Здравствуйте, newinfo2005!
Работать с БД на Access в Delphi 7 можно стандартными компонентами. Просто подключаться при помощи BDE.
Ответ отправил: Алексей Владимирович (статус: 7-ой класс)
Отправлен: 22.04.2005, 09:41
Оценка за ответ: 4
Комментарий оценки:
Это всё понятно но ты не ответил не на все вопросы и когда изучал БД работы на Delphi так там вообще не показано как это сделать!!!(из вопроса который я задал)

Отвечает: sir henry
Здравствуйте, newinfo2005!
1. Неважно, какой тип БД Вы собираетесь открывать, для этого есть несколько универсальных путей:
а) Классический. Использовать поставляемый с Дельфой движок баз данных, называемый BDE.
б) Тоже уже классический. Использовать поставляемые вместе с Дельфи компоненты для доступа к БД. Это ADO (универсальный), для InterBase целая палитра, COM-объекты для доступа к Microsoft Office (это конкретно для ACCESS).
в) Использовать компоненты разработанные кем-то для доступа к той БД, которую Вы выбрали.
Во всех трех случая алгоритм прост:
Вы устанавливаете соединение с БД, потом выбираете нужную Вам таблицу, потом данные из этой таблицы выводите в ВИЗУАЛЬНЫЙ компонент отображения данных.
Было бы неплохо, если бы Вы приобрели книгу по работе с БД в Дельфи, т.к. объем материала большой и в двух словах об этом не расскажешь.
2. Лучше всего для поиска новых компонентов подходит поисковик (например YANDEX, GOOGLE и.т.п.). Набираете в строке поиска "компоненты для delphi 2005" или "компоненты для delphi 7". На иностранных веб-сайтах подобный текст, естесствено, будет на английском.
Наиболее известные хранилища компонентов:
www.torry.net
www.delphikingdom.com
www.delphimaster.ru
Ответ отправил: sir henry (статус: Профессор)
Отправлен: 22.04.2005, 11:38
Оценка за ответ: 5

Отвечает: And1
Здравствуйте, newinfo2005!
Самая большая библиотека компонентов для Delphi - www.torry.net. Но к сожалению на английском... А на счёт MS Access, то у Delphi (7) есть на вклдаке Servers компоненты для работы с приложениями Office и вызов функий для работы с этими компонентами идёт через OLE.
Ответ отправил: And1 (статус: 1-ый класс)
Отправлен: 22.04.2005, 14:18
Оценка за ответ: 3
Комментарий оценки:
Моя программа работает без Access , а выполняет некоторые её функции!!!

Отвечает: CJ
Здравствуйте, newinfo2005!
:) Ого, насколько я знаю ТАКУЮ как Access никто не решался делать. :)
Тебе необходимо расположить на форме компоненты, с помощью которых ты будешь "запускать" свою БД, записать пару строк кода и вперед.
Ответ отправил: CJ (статус: Студент)
Отправлен: 24.04.2005, 10:53
Оценка за ответ: 4


Вопрос № 20069
Хочу присвоить компоненту имя (Name), которое хранится в переменной типа String, но эта переменная начинается с символов :#. Как отфильтровать эти символ или как присвоить компонету имя начиная с третьего символа переменной?
ListBox1.Name:=??????????????????????????
Отправлен: 21.04.2005, 20:18
Вопрос задал: source (статус: Посетитель)
Всего ответов отправлено: 6

Отвечает: John Freeman
Здравствуйте, source!
String это массив of char => String[c] и в цикл вида
outstr:='';
if length(instr)>0 then
for c:=1 to Length(instr) do begin
if instr[c]<>'#' then outstr:=outstr+instr[c];
end;
Это ПРИМЕРНЫЙ код, способов до фига.
Ответ отправил: John Freeman (статус: Профессор)
Отправлен: 21.04.2005, 20:27

Отвечает: Pushkin
Здравствуйте, source!
Если правильно понял вопрос, то:
1.
s := '';
for i := 1 to length(StringVariable) do begin
case StringVariable[i] of
#1..#47: begin end;
else s := s+VariableString[i];
end;
end;
ListBox1.Name := s;
2.
ListBox1.Name := Copy(StringVariable,3,Length(StringVariable)-2);
Ответ отправил: Pushkin (статус: 1-ый класс)
Отправлен: 21.04.2005, 22:31

Отвечает: Master135
Здравствуйте, source!
Функция Pos(искомая пдстрока,имя строки) возвращает № начала подстроки в строке или 0 если не найдена.
Delete(строка,№ позиции в строке,кол-во символов)
ST:String
while pos('#',ST)<>0 do
Delete(ST,pos('#',ST),1);
ListBox1.Name:=ST;
Ответ отправил: Master135 (статус: 3-ий класс)
Отправлен: 22.04.2005, 01:16

Отвечает: Stamm
Здравствуйте, source!
Попробуйте следующее(s-переменная типа String)
Listbox1.name:=Copy(s,3,Length(s));
Ответ отправил: Stamm (статус: 1-ый класс)
Отправлен: 22.04.2005, 08:17
Оценка за ответ: 5
Комментарий оценки:
Идеальный вариант.
Вы меня здорово выручили.
Огромное Вам человеческое спасибо.

Отвечает: sir henry
Здравствуйте, source!
В Паскале есть отличная функция для этого дела:
Name:=Copy(Строка_откуда_надо_вырезать_часть_ее, Начальная_позиция_выреза, Количество_символов);
Вот ее и используйте.
Ответ отправил: sir henry (статус: Профессор)
Отправлен: 22.04.2005, 11:43

Отвечает: And1
Здравствуйте, source!
Ваша проблема решается следующим образом: понадобится только функция Delete (имя_переменной_строки, позиция_с_которой_начинается_удаление, количество_удаляемых_символов). Тогда в вашем случае будет та Delete (имя_переменной, 1, 2). Из переменной удаляется только два первых символа, а остальные символы остаются как есть.
Ответ отправил: And1 (статус: 1-ый класс)
Отправлен: 22.04.2005, 14:18


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

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

* Код программы, выдержки из закона и т.п. дополнение к вопросу.
Эта информация будет отображена в аналогичном окне как есть.

Обратите внимание!
Вопрос будет отправлен всем экспертам данной рассылки!

Для того, чтобы отправить вопрос выбранным экспертам этой рассылки или
экспертам другой рассылки портала RusFAQ.ru, зайдите непосредственно на RusFAQ.ru.


Форма НЕ работает в почтовых программах The BAT! и MS Outlook (кроме версии 2003+)!
Чтобы отправить вопрос, откройте это письмо в браузере или зайдите на сайт RusFAQ.ru.


© 2001-2005, RusFAQ.ru, Россия, Москва. Все права защищены.
Идея, дизайн, программирование, авторское право: Калашников О.А.


http://subscribe.ru/
http://subscribe.ru/feedback/
Подписан адрес:
Код этой рассылки: comp.soft.prog.delphiplus
Отписаться

В избранное