Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2003.03.13;
Скачать: CL | DM;

Вниз

Вопрос про параметры   Найти похожие ветки 

 
Cool Cooler   (2003-03-03 10:20) [0]

Как мне в Моей программе изменить параметры камандной строки?


 
SVM (Perm)   (2003-03-03 10:30) [1]

????


 
Cool Cooler   (2003-03-03 10:39) [2]

Т.е. я хочу запретить Юзеру использовать какой нибудь параметр, для этого яхочу менять его на тот, который неиспользуется. Я слышал, что надо использовть ParamStr=nil&? , но у меня это не почему тоработает


 
Smithson ©   (2003-03-03 10:49) [3]

Если это твоя программа, то гораздо проще не обрабатывать этот параметр в твоей программе, а не удалять его из командной строки твоей программы. Или я не прав?


 
Cool Cooler   (2003-03-03 10:57) [4]

У меня большой Проект, и я хочу что бы ва всех местах, где это используется было одинаково, так меньше вероятность ошибок. Лучше один раз его запретить, чем во многих местах справлять


 
Cool Cooler   (2003-03-03 11:03) [5]

А почему не работает ParamStr=nil? Как правильно написать?


 
han_malign ©   (2003-03-03 11:14) [6]

(function ParamStr):=nil????????
- ну-ну
function GetCommandLine: PChar; stdcall;
external kernel name "GetCommandLineA";

function GetParamStr(P: PChar; var Param: string): PChar;
var
Len: Integer;
Buffer: array[0..4095] of Char;
begin
while True do
begin
while (P[0] <> #0) and (P[0] <= " ") do Inc(P);
if (P[0] = """) and (P[1] = """) then Inc(P, 2) else Break;
end;
Len := 0;
while (P[0] > " ") and (Len < SizeOf(Buffer)) do
if P[0] = """ then
begin
Inc(P);
while (P[0] <> #0) and (P[0] <> """) do
begin
Buffer[Len] := P[0];
Inc(Len);
Inc(P);
end;
if P[0] <> #0 then Inc(P);
end else
begin
Buffer[Len] := P[0];
Inc(Len);
Inc(P);
end;
SetString(Param, Buffer, Len);
Result := P;
end;

function ParamCount: Integer;
var
P: PChar;
S: string;
begin
P := GetParamStr(GetCommandLine, S);
Result := 0;
while True do
begin
P := GetParamStr(P, S);
if S = "" then Break;
Inc(Result);
end;
end;

function ParamStr(Index: Integer): string;
var
P: PChar;
Buffer: array[0..260] of Char;
begin
if Index = 0 then
SetString(Result, Buffer, GetModuleFileName(0, Buffer, SizeOf(Buffer)))
else
begin
P := GetCommandLine;
while True do
begin
P := GetParamStr(P, Result);
if (Index = 0) or (Result = "") then Break;
Dec(Index);
end;
end;
end;

- и чему ты тут хочешь Nil присвоить???????

"В сад, все в сад"(с)Джером К. Джером - Трое в лодке, несчитая собаки. Комические куплеты.


 
Mishel   (2003-03-03 11:15) [7]

Вроде еще в TurboPascale была функция ParamCount
if ParamCount=0
then нема параметров
else ParamStr(N) - где N - номер параметра


 
Cool Cooler   (2003-03-03 11:20) [8]

А к чему Вы мне этот код написал? Я знаю как узнать параметр, но мне нужно его изменить(хотя бы просто удалить), а это не отвечает на мой вопрос. Неужели никто не знает.


 
Cool Cooler   (2003-03-03 11:24) [9]

Вот что нашел в справке - The reserved word nil denotes a pointer-valued constant that doesn"t point to anything.
Может надо через указательи?


 
han_malign ©   (2003-03-03 11:26) [10]

Удаление гланд через задний проход - больше слов кроме матерных нет...


 
Mishel   (2003-03-03 11:56) [11]

Взять параметр из строки, загнать в глобальную переменную, подменить его значение в зависимости от пользователя и дальше работать с переменной - так не подходит?


 
Cool Cooler   (2003-03-03 12:35) [12]

Дополнительные переменные - домолнительный расход памяти на каждое использовоние. А мне надо чтоб прога надежно работала, без всяких там "Access violation".


 
Cool Cooler   (2003-03-03 12:52) [13]

Все, нашел способ


 
Dms   (2003-03-03 12:57) [14]


> мне надо чтоб прога надежно работала, без всяких там "Access
> violation"

Подмена параметра командной строки для СВОЕЙ программы по моему полный бред, но, думаю, если изменить свой PSP, то может получиться.


 
Anatoly Podgoretsky ©   (2003-03-03 13:58) [15]

Используй If ... then



Страницы: 1 вся ветка

Текущий архив: 2003.03.13;
Скачать: CL | DM;

Наверх




Память: 0.49 MB
Время: 0.026 c
14-39543
ЮРИЙ_К
2003-02-26 12:06
2003.03.13
Контролировать добавление файлов на диск


14-39506
Думкин
2003-02-21 06:05
2003.03.13
Россия


14-39561
race1
2003-02-24 17:09
2003.03.13
сон


14-39512
MihalochMK
2003-02-25 14:52
2003.03.13
Помогите пожалуйста!


3-39151
Glory
2003-02-20 14:51
2003.03.13
Настроить BDE для работы с файлами FoxPro