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

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


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

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

Выпуск № 838
от 13.06.2007, 17:35

Администратор:Калашников О.А.
В рассылке:Подписчиков: 471, Экспертов: 80
В номере:Вопросов: 5, Ответов: 14


Вопрос № 90486: 21 вопрос, поскольку с картинками, то в формате MS Word. Здесь: http://Osdevoloper.narod.ru/voprosy.rar Буду рад толковым ответам, исходникам и подобным....
Вопрос № 90506: Уважаемые господа эксперты Помогите: 1) Дано целое положительное число N по нажатию по кнопке надо переставить его цифры так чтобы образовалось максимальное число, записаное теми же цифрами. 2)Есть строка puti - это путь к запуску exe фа...
Вопрос № 90515: Ув. Эксперты, у кого есть исходники по преобразованию bmp формата RLU алгоритмом, или у кого есть какая нибуть литература? Помогите кто чем может, нужно очень срочно. Заранее спасибо....
Вопрос № 90529: Здравствуйте уважаемые ! Я хочу создавать ини файл при запуске ехе- шника,куда заносился бы путь до той папки где находится ехе- шник.Помогите пожалуйста!...
Вопрос № 90614: Здравствуйте уважаемые! Задам вопросу здесь посколько программирую на DELPHI. Имелся код который делал выгрузка данных из одной проги (одна БД) в екселевский файл для другой проги (другая БД), в приложение. Добавил в код вывод в пятый столбец...

Вопрос № 90.486
21 вопрос, поскольку с картинками, то в формате MS Word. Здесь: http://Osdevoloper.narod.ru/voprosy.rar Буду рад толковым ответам, исходникам и подобным.
Отправлен: 07.06.2007, 20:46
Вопрос задал: тепленёв Максим Витальевич (статус: Посетитель)
Всего ответов: 2
Мини-форум вопроса >>> (сообщений: 0)

Отвечает: Кэр Лаэда
Здравствуйте, тепленёв Максим Витальевич!

Вопросов много а ответ один
посоветовал бы вам скачать базу знаний drkb
официальный сайт
http://www.drkb.ru/

полная версия весит 30 М
есть версии поменьше, но если скачаете полную, то я думаю не пожалеете. все вопросы что будут у вас возникать ближайший год я думаю вы там найдете.
Ответ отправил: Кэр Лаэда (статус: 10-ый класс)
Ответ отправлен: 07.06.2007, 20:57

Отвечает: Новак Александер Васильевич
Здравствуйте, тепленёв Максим Витальевич!
По поводу 1 вопроса щеруди Api-Функции WinInet, там есть и по FTP-протоколу, и по HTTP.
HTTP:
Var
hHTTPSession, hReqUrl: HInternet;
Bufer: PChar;
nRead:Cardinal;
strRead:String;
nBegin,nEnd: Integer;
begin
hHTTPSession:=InternetOpen(‘FindWeb’,INTERNET_OPEN_TYPEPRECORDING,0,0,0);
InternetOpenURL(hHTTPSession,PChar(strRead),0,0,0);
New(Bufer,1024);
repeat
InternetReadFile(hReqUrl,@ Bufer,sizeof(Bufer),nRead);
until nRead=0;
IntenetCloseHandle(hReqUrl);
IntenetCloseHandle(hHTTPSession);
end;
MSDN советую хотя там всё для VC++
----------------

По поводу 4 вопроса, не совсем ясно, так как все проги вызываются из командной строк, если надо просто обработать параметре этой строки попробуйте так : if(GetCommandLine='/A')then begin …………………

-------------------------
По поводу 13 вопроса, программеры С и др. систем программированиия используют DLL.
Их преимущество в том, что это на сегоднящнии день самый компактный способ хранения общеиспользуемого кода.
Borland для Delphi разработала BPL-файлы, плюса 2: их легче реализоват из под Delphi и они без всяких заморочек могут содержать в себе Delphi формы, на последнее не рекомендую исползовать

-----------
По поводу 14 вопроса, нет ………. Не слщал по крайне мере!!!!!!!
------------------------

По поводу 15, 17 вопроса, ищи соответствующии компоненты!!!!!
-------------------------

По поводу 14 вопроса, Вот так:
procedure TFOptions.EExtKeyPress(Sender: TObject; var Key: Char);
begin
if not(((ord(Key)>=65)and(ord(Key)<=122))or((ord(Key)>=48)and(ord(Key)<=57))or(ord(Key)=8)
or(ord(Key)=46)or(ord(Key)=39)or(ord(Key)=37))then Key:=#0;
end;
Ответ отправил: Новак Александер Васильевич (статус: 1-ый класс)
Ответ отправлен: 07.06.2007, 21:55


Вопрос № 90.506
Уважаемые господа эксперты
Помогите:
1) Дано целое положительное число N по нажатию по кнопке надо переставить его цифры так чтобы образовалось максимальное число, записаное теми же цифрами.
2)Есть строка puti - это путь к запуску exe файла, как из него выдернуть имя_exe_файла.exe?
Отправлен: 07.06.2007, 23:17
Вопрос задал: Lejon (статус: Посетитель)
Всего ответов: 4
Мини-форум вопроса >>> (сообщений: 0)

Отвечает: Louken
Здравствуйте, Lejon!

По второму вопросу:

var s: string;
...
s:=ExtractFileName(puti);

А вообще в Delphi есть ряд процедур для этих целей, думаю из примера будет понятно зачем каждая нужна:

Приложение:

Ответ отправил: Louken (статус: 3-ий класс)
Ответ отправлен: 07.06.2007, 23:39
Оценка за ответ: 5
Комментарий оценки:
Круто то что надо!

Отвечает: Gh0stik
Здравствуйте, Lejon!

1) Вам достаточно разбить число на цифры, их занести в массив, а потом упорядочить массив по убыванию известным Вам способом. И собрать новое число путем поочередного выписывания цифр из массива (решение смотрите в приложении).

2) Есть такая "хитрая" функция function ExtractFileName(const FileName: string): string;

Для Вашей переменной ее можно использовать так:
var s:string;
begin
....
s:=ExtractFileName(puti);// имя файла
....
end;


Good Luck!!!

Приложение:

---------
Господь Бог - это всего лишь сверхмощный генератор случайных чисел, в соответствии с которыми сочетаются события на Земле. Генератор случайных чисел - и только.

Ответ отправил: Gh0stik (статус: Профессор)
Украина, Славянск
Организация: Славянский государственный педагогический университет (Кафедра алгебры)
ICQ: 289363162
----
Ответ отправлен: 07.06.2007, 23:54
Оценка за ответ: 5
Комментарий оценки:
Ответ полный!
Ответ правельный!!
Большое спасибо!!!

Отвечает: Градов Юрий Михайлович
Здравствуйте, Lejon!
ExtractFileName(puti);
ExtractFilePath(Application.ExeName); - извлечет путь из имени файла
ExtractFileAttr и т.д.

Приложение:

---------
Глаза боятся - руки делают!

Ответ отправил: Градов Юрий Михайлович (статус: Студент)
Ответ отправлен: 08.06.2007, 00:47

Отвечает: Sashok
Здравствуйте, Lejon!
2)Для того чтобы выделить имя файла из всего пути используй ExtractFileName, описание см в хелпе к Delphi. Там так же есть функции ExtractFilePath и ExtractFileExt для вырезки пути и расширения файла. Зависимости: SysUtils.

1)С помощью IntToStr преобразуй число в строку, разреж строку на символы и собери обратно в порядке противоположном алфавитному. Далее верни строку в число с помощью StrToInt.
Пример 2435 -> 5432
Ответ отправил: Sashok (статус: 3-ий класс)
Ответ отправлен: 08.06.2007, 12:25


Вопрос № 90.515
Ув. Эксперты, у кого есть исходники по преобразованию bmp формата RLU алгоритмом, или у кого есть какая нибуть литература? Помогите кто чем может, нужно очень срочно. Заранее спасибо.
Отправлен: 08.06.2007, 00:00
Вопрос задал: Soadbest (статус: Посетитель)
Всего ответов: 1
Мини-форум вопроса >>> (сообщений: 0)

Отвечает: din
Здравствуйте, Soadbest!
Наверное речь об алгоритме RLE. Вот ссылка http://forum.codenet.ru/showthread.php?t=32661 в последнем сообщении по ветке ссылка на исходник.
Удачи!

---------
Есть только одно зло - невежество, и только одно благо - знания
Ответ отправил: din (статус: Практикант)
Ответ отправлен: 08.06.2007, 00:46


Вопрос № 90.529
Здравствуйте уважаемые ! Я хочу создавать ини файл при запуске ехе- шника,куда заносился бы путь до той папки где находится ехе- шник.Помогите пожалуйста!
Отправлен: 08.06.2007, 07:39
Вопрос задал: GAZOT (статус: Посетитель)
Всего ответов: 6
Мини-форум вопроса >>> (сообщений: 29)

Отвечает: Н.В.
Здравствуйте, GAZOT!
Создайте обработчик события OnFormShow и запишите туда следующий код.
Обязательно добавьте в uses модуль INIFiles.


uses INIFiles;

procedure TForm1.FormShow(Sender: TObject);
var f :TINIFile;
    i : integer;
begin
  f := TINIFile.Create('folders.ini'); // INI-файл будет хранится в Windowsfolders.ini (по умолчанию)
  {если захотите изменить папку, где он будет храниться, допишите ее перед названием файла}

  i := f.ReadInteger('main','index',1); // index - номер, под которым будет записываться последняя папка
  f.WriteInteger('main','index',i+1);
  f.WriteString('main',IntToStr(i),ExtractFilePath(application.ExeName));
  f.Free;
end;


Удачи!
Ответ отправил: Н.В. (статус: Студент)
Ответ отправлен: 08.06.2007, 08:16
Оценка за ответ: 5
Комментарий оценки:
Это конечно немного не то что я хотел бы, хотя сам виноват ,не указал что папка должна быть таже что и для exe,но мне понравилась идея счётчика включений.

Отвечает: W@NDeReR
Здравствуйте, GAZOT!
Сделайте так как написано в приложении

Приложение:

---------
Опыт — дитя мысли, а мысль — дитя действия. Нельзя учиться по книгам.

Ответ отправил: W@NDeReR (статус: 4-ый класс)
Ответ отправлен: 08.06.2007, 08:51
Оценка за ответ: 5
Комментарий оценки:
Коментарии излишни как раз то что нужно

Отвечает: Фадеев Юрий
Здравствуйте, GAZOT!
Путь к папки с програмою можно найти командой GetCurrentDir, например:
path_prog:=GetCurrentDir;
Утверждение ошибочно. GetCurrentDir() может быть абсолютно любой директорией.
(edited by Ерёмин А.)

Для создания ini файла сначала нужно в uses добавить IniFiles,
потом огласить переменную например:
ConfigFile:TIniFile;
дальше создания файла нужно воспользоваться методом Create, например:
ConfigFile:=TIniFile.Create(path_prog+'файл.ini');

Потом для чтения с файла нужно воспользоваться методом ReadString а для записи WriteString

Приложение:

Ответ отправил: Фадеев Юрий (статус: 1-ый класс)
Ответ отправлен: 08.06.2007, 09:57
Оценка за ответ: 4
Комментарий оценки:
спасибо за GetCurrentDir запомню, а вот в примере лучше бы показали что я просил занести в ини.

Отвечает: Bochvarov NikB
Здравствуйте, GAZOT!

Ответ удален, по одной из указанных причин:
- пустой;
- неверный;
- вредный;
- не соответствует вопросу
и помещен для обсуждения в ветку форума "О деятельности экспертов и работе портала/Удаленные ответы для обсуждения"
=Maxim V. Tchirkine=
Ответ отправил: Bochvarov NikB (статус: 10-ый класс)
Ответ отправлен: 08.06.2007, 11:52

Отвечает: Sashok
Здравствуйте, GAZOT!
1 способ.
Чтобы получить текущую директорию, где лежит программа вызови GetCurrentDir. Функцию надо вызывать в самом начале программы, т. к. при последующем обращении к файлам текущая директория может изменится.
Утверждение ошибочно. Текущая директория может не быть директорией с исполняемым файлом уже и при запуске.
(edited by Ерёмин А.)
2 способ.
Можно получить нулевой параметр командной строки с которой была вызвана программа. Он всегда содержит полный путь и название исполняемого файла. Параметры командной строки возвращает функция ParamStr().
ParamStr(0) - полный путь и имя программы
ParamStr(1) - первый параметр в командной строке
и т.д.
Ответ отправил: Sashok (статус: 3-ий класс)
Ответ отправлен: 08.06.2007, 12:33
Оценка за ответ: 4
Комментарий оценки:
теория теорией,но лучше иметь пример перед глазами

Отвечает: Градов Юрий Михайлович
Здравствуйте, GAZOT!

Ответ удален как неверный
и помещен для обсуждения в ветку форума
"О деятельности экспертов и работе портала/Удаленные ответы для обсуждения".

-~= Gh0stik =~-

---------
Глаза боятся - руки делают!
Ответ отправил: Градов Юрий Михайлович (статус: Студент)
Ответ отправлен: 08.06.2007, 13:38
Оценка за ответ: 3
Комментарий оценки:
можно и так конечно ,но в ини можно ещё и по секциям записывать поэтому мой выбор за ним


Вопрос № 90.614
Здравствуйте уважаемые!
Задам вопросу здесь посколько программирую на DELPHI.
Имелся код который делал выгрузка данных из одной проги (одна БД) в екселевский файл для другой проги (другая БД), в приложение. Добавил в код вывод в пятый столбец еще данных, каких не суть важно пусть для простоты 1. Попробовал грузить во вторую прогу ругается что нельзя перевести 1; в integer. Доступа к коду второй проги нет но там есть возможность удалить из столбца,делаю удалить второй символ что бы осталась 1,вроде пошло но когда пошли данные большим обьмом опять ошибка причем с 17 строки до 16 нормально. Экселевский файл сохранил в формате '.csv' и увидел что до 16 строки стоят в конце 1; т.е. поля разделяются ';' и последним символом стоит ';' а с 17 строки поля разделяются ';' но в конце нет ';'. Попробовал тот же екселевский файл заполнить вручную и сохранил '.csv', тоже до 16 строки включительно есть завершающий ';' а потом нет. Что это глюк екселя что он только до 16 строки ставит завершающий ';' или я что непонимаю? Естественно в итоге у меня нет однозначности чт о бы совместить со второй прогой доступа к коду которой нет. Если бы везде в последнем была 1 или 1; то загрузка прошла бы а так либо ошибка невозможно перевести 1; в интегер либо ошибка видимо когда пытается удалить второй символ которого там нет (1), либо вторая прога неможет разделить поля в ней там задается разделение по ';' а в последнем поле с 17 строки нет этого. Задачу загрузки решил другим вариантом но все таки это ошибка екселя до 16 ставит завершающий а потом нет или я что-то непонимаю.

Приложение:

Отправлен: 08.06.2007, 17:21
Вопрос задал: Трофименко А.В. (статус: Посетитель)
Всего ответов: 1
Мини-форум вопроса >>> (сообщений: 3)

Отвечает: Sandy
Здравствуйте, Трофименко А.В.!
Почему не всегда ставится разделитель я не знаю и заранее извиняюсь если Вы хотели докопаться до сути явления))
Но возможно, как вариант, имеет смысл сделать пост обработку этого файла на предмет дополнения строк разделителем, если его нет. csv это, насколько помню, просто текстовый файл и проблем с такой обработкой возникнуть не должно.
Ответ отправил: Sandy (статус: 3-ий класс)
Ответ отправлен: 08.06.2007, 17:44


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

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

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

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

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


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


© 2001-2007, Портал RusFAQ.ru, Россия, Москва.
Авторское право: ООО "Мастер-Эксперт Про"
Email: support@rusfaq.ru, тел.: +7 (926) 535-23-31
Хостинг: "Московский хостер"
Поддержка: "Московский дизайнер"
Авторские права | Реклама на портале
Версия системы: 4.52 от 02.05.2007
Яндекс Rambler's Top100
RusFAQ.ru | MosHoster.ru | MosDesigner.ru | RusIRC.ru
Kalashnikoff.ru | RadioLeader.ru | RusFUCK.ru

В избранное