Форум: "Основная";
Текущий архив: 2005.08.14;
Скачать: [xml.tar.bz2];
Вниз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;
Скачать: [xml.tar.bz2];
Память: 0.45 MB
Время: 0.016 c