Текущий архив: 2004.08.29;
Скачать: CL | DM;
Вниз
Точки Найти похожие ветки
← →
Anton777 © (2004-08-12 10:58) [0]Помогите профессионалы! Я получаю своей функциейсписок папок и вложенных в них папок и каждый раз в отчёте получаю вместе со спиком вот такую вещь C:\anton\.
C:\anton\..
C:\anton\temp\
C:\anton\temp\.
C:\anton\temp\..
Что это за точки и как с ними бороться и их искусственно убираю с помощью Trim но это не выход помогите Заранее спасибо!
← →
Ega23 © (2004-08-12 11:01) [1]Свою функцию - в студию!
← →
Skyle © (2004-08-12 11:03) [2]
> Anton777 © (12.08.04 10:58)
Точки - это правильно, а вот то, что ты не можешь их проигнорировать - уже вопрос. Для этого нужен код, как сказано в
> [1] Ega23 © (12.08.04 11:01)
← →
_student (2004-08-12 11:04) [3].. - наддиректория
. - самаif (sr.Name <> ".") and (sr.Name <> "..")
← →
Anatoly Podgoretsky © (2004-08-12 11:05) [4]И код функции Trim также в студию
← →
Anton777 © (2004-08-12 11:16) [5]procedure GetLstFolder(const WorkDir:String;//äëÿ ðàáî÷åãî êàòàëîãà=================================
var IncludeDir:TstringList);//âîçâðàùàåò ñïèñîê âëîæåííûõ ïàïîê
var ii:integer;
bufLST:TStringList;
FileRec:TSchFileR;
FileAttrs: Integer;
s:string;
begin
bufLST:=TStringList.Create;//ñîçäàåì ñïèñîê ôàéëîâ âõîäíîãî êàòàëîãà
try
FileAttrs:=0;//çàäàòü àòðèáóòû ôàéëà äëÿ ïîèñêà íóæíûõ ôàéëîâ
FileAttrs := FileAttrs + faDirectory;//èñêàòü òîëüêî êàòàëîãè
FileRec.FileAtt:=FileAttrs;
FileRec.WorkDir:=WorkDir;
GetSimpleLstFile(FileRec,bufLST);//ïîëó÷èëè ñïèñîê ôàéëîâ ðàáî÷åãî êàòàëîãà
// bufLST.SaveToFile("bufLST.111");
for ii:=0 to bufLST.Count-1 do//ïåðåáèðàåì âñå ïàïêè ðàáî÷åãî(âõîäíîãî) êàòàëîãà
begin//äëÿ êàæäîé ïàïêè ðàáî÷åãî êàòàëîãà èùåì âëîæåííûå ïàïêè
s:=Trim(bufLST.Strings[ii]);
while (s[Length(s)]=".") do s:=Trim(Copy(s,1,Length(s)-1));
if not ((s[Length(s)]="/")or(s[Length(s)]="\")) then s:=s+"\";
if s<>WorkDir
then begin
IncludeDir.Add(s);//äîáàâèòü â ãëîáàëüíûé ñïèñîê î÷åðåäíîé íàéäåííûé êàòàëîã
GetLstFolder(s,IncludeDir);//èñêàòü âíóòðè íàéäåííîãî êàòàëîãà(âûçâàòü ñàì ñåáÿ)
end;
end;
finally bufLST.Free; end;
← →
Плохиш © (2004-08-12 11:20) [6]
> Anton777 © (12.08.04 11:16) [5]
Что _student (12.08.04 11:04) [3] ну совсем не помогло?
← →
_student (2004-08-12 11:23) [7]Комментарий бы почитать
← →
Anatoly Podgoretsky © (2004-08-12 11:28) [8]Да нет смысла, и без комментариев видно искажение имен папок.
А вот код функции TRIM которая якобы удаляет точки так и не приведен.
← →
Anton777 © (2004-08-12 11:31) [9]rims leading and trailing spaces and control characters from a string.
Unit
Sysutils
Category
string handling routines
function Trim(const S: string): string;
Description
Trim removes leading and trailing spaces and control characters from the given string S.
← →
Ega23 © (2004-08-12 11:32) [10]2 Anton777 © (12.08.04 11:31) [9]
Речь-то идёт о ПРОБЕЛАХ! А не о точках.
← →
VMcL © (2004-08-12 11:33) [11]>>Anton777 © (12.08.04 11:31) [9]
Функция SysUtils.Trim не удаляет точки.
← →
Anton777 © (2004-08-12 11:34) [12]Именно trim убирает пробелы до между и перед точками а COPY удаляет эти точки!
← →
Anton777 © (2004-08-12 11:35) [13]Returns a substring of a string or a segment of a dynamic array.
Unit
System
Category
string handling routines
function Copy(S; Index, Count: Integer): string;
function Copy(S; Index, Count: Integer): array;
Description
S is an expression of a string or dynamic-array type. Index and Count are integer-type expressions. Copy returns a substring or sub array containing Count characters or elements starting at S[Index].
If Index is larger than the length of S, Copy returns an empty string or array.
If Count specifies more characters or array elements than are available, only the characters or elements from S[Index] to the end of S are returned.
Note: When S is a dynamic array, Copy can only be used as a parameter in a call to a procedure or function that expects an array parameter. That is, it acts like the Slice function when working with dynamic arrays.
← →
Anatoly Podgoretsky © (2004-08-12 11:36) [14]Anton777 © (12.08.04 10:58)
Что это за точки и как с ними бороться и их искусственно убираю с помощью Trim
Не мучайся, а посмотри в FAQ примеры сканирования папок и файлов.
← →
Anatoly Podgoretsky © (2004-08-12 11:37) [15]Anton777 © (12.08.04 11:34) [12]
Пробелы в конце и начали убирать неверно, особенно если эти имена в дальнейшем предполагается использовать, это будут уже другие имена, несуществующие.
← →
Anton777 © (2004-08-12 11:39) [16]Так я убираю только то что с точками вот посмотри на эту строку
while (s[Length(s)]=".") do s:=Trim(Copy(s,1,Length(s)-1));
if not ((s[Length(s)]="/")or(s[Length(s)]="\")) then s:=s+"\";
← →
Sun bittern © (2004-08-12 11:42) [17]Anton777 © (12.08.04 11:34) [12]
Поищите ответ в FAQ (рекурсивный поиск файлов), а там и под каталоги переделаете
← →
Anatoly Podgoretsky © (2004-08-12 11:42) [18]Очень странная строка по уничтожению имен файлов. Еще раз смотри [14]
← →
Anton777 © (2004-08-12 11:45) [19]ВСЕМ СПАСИБО РАЗОБРАЛСЯ !!!!!!!!!!
Страницы: 1 вся ветка
Текущий архив: 2004.08.29;
Скачать: CL | DM;
Память: 0.5 MB
Время: 0.024 c