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

Вниз

string в array[0..259] of char   Найти похожие ветки 

 
ADSWee   (2005-07-26 21:54) [0]

как привести к string тип TDir,его описание
TDir=array[0..259] of char;

function DirString(a:string):TDir;
var
d:byte;
s:string;
c:char;
DD:TDir;
begin
for d:=0 to length(a) do begin
                  s:=copy(a,d,1);
                  c:=s[1];
                  DD[d]:=c;
                  end;
a[length(a)]:=chr(0);
Result:=DD;
end;

писал так,должно работать ,но неработает
procedure Finds(s:TDir);

Finds("c:\"); работает

var
ss:string;
ss:="C:\";
Finds(DirString(ss)); неработает! (


 
Гаврила ©   (2005-07-26 22:12) [1]


> как привести к string тип TDir

s:=StrPas(Dir);


 
Гаврила ©   (2005-07-26 22:28) [2]


> function DirString(a:string):TDir;
> var
> d:byte;
> s:string;
> c:char;
> DD:TDir;
> begin
> for d:=0 to length(a) do begin

Во первых, максимальное значение d = 255, у тебя строка a может иметь большую длину - поймаешь ошибку
Во вторых, индексация в строках начинается с 1, а не с 0

>                   s:=copy(a,d,1);
>                   c:=s[1];
>                   DD[d]:=c;
>                   end;

В третьих - этот кусок кода может быть заменен на
DD[d]:=a[d];

> a[length(a)]:=chr(0);

В четвертых - заменил последний символ строки (который может быть значимым) нулем

> Result:=DD;

В пятых, переменная DD вообще лишняя, вместо нее можно ичпользовать переменную Result
> end;

В шестых, это все ,что ты написал, можно заменить одной строкой:
StrPLCopy(Result, s, High(Result));


 
Гаврила ©   (2005-07-26 22:38) [3]

ну, и третье уточнение )))
> В шестых, это все ,что ты написал, можно заменить одной
> строкой:
> StrPLCopy(Result, s, High(Result));


Разумеется, имелось в виду
StrPLCopy(Result, a, High(Result));


> > a[length(a)]:=chr(0);


переменная a передана сюда без ключевого слова var.
Следовательно, ее изменение внутри процедуры не повлечет за собой изменения фактического параметра при подстановке. То есть, непонятно, зачем вообще ее изменять.


 
ADSWee   (2005-07-27 00:24) [4]

Спасибо - малось намудрил


 
begin...end ©   (2005-07-27 08:34) [5]

> Гаврила ©   (26.07.05 22:12) [1]
> s:=StrPas(Dir)

s := Dir



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

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

Наверх




Память: 0.47 MB
Время: 0.046 c
8-1113201914
Fokin111
2005-04-11 10:45
2005.08.14
TMediaPlayer


1-1122092093
N!tro
2005-07-23 08:14
2005.08.14
Поиск в WebBrowser


11-1105276208
Э-э-э Вася
2005-01-09 16:10
2005.08.14
Вывод jpeg в MCK (KOL)


1-1122033841
Weberd
2005-07-22 16:04
2005.08.14
Являются ли .dcu файлы версионными?


4-1117043832
AndreyProg
2005-05-25 21:57
2005.08.14
Как программно изменить стиль окон и кнопок в XP