Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 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;//&#228;&#235;&#255; &#240;&#224;&#225;&#238;&#247;&#229;&#227;&#238; &#234;&#224;&#242;&#224;&#235;&#238;&#227;&#224;=================================
                      var IncludeDir:TstringList);//&#226;&#238;&#231;&#226;&#240;&#224;&#249;&#224;&#229;&#242; &#241;&#239;&#232;&#241;&#238;&#234; &#226;&#235;&#238;&#230;&#229;&#237;&#237;&#251;&#245; &#239;&#224;&#239;&#238;&#234;
var ii:integer;
   bufLST:TStringList;
   FileRec:TSchFileR;
   FileAttrs: Integer;
   s:string;

begin
bufLST:=TStringList.Create;//&#241;&#238;&#231;&#228;&#224;&#229;&#236; &#241;&#239;&#232;&#241;&#238;&#234; &#244;&#224;&#233;&#235;&#238;&#226; &#226;&#245;&#238;&#228;&#237;&#238;&#227;&#238; &#234;&#224;&#242;&#224;&#235;&#238;&#227;&#224;
try
FileAttrs:=0;//&#231;&#224;&#228;&#224;&#242;&#252; &#224;&#242;&#240;&#232;&#225;&#243;&#242;&#251; &#244;&#224;&#233;&#235;&#224; &#228;&#235;&#255; &#239;&#238;&#232;&#241;&#234;&#224; &#237;&#243;&#230;&#237;&#251;&#245; &#244;&#224;&#233;&#235;&#238;&#226;
FileAttrs := FileAttrs + faDirectory;//&#232;&#241;&#234;&#224;&#242;&#252; &#242;&#238;&#235;&#252;&#234;&#238; &#234;&#224;&#242;&#224;&#235;&#238;&#227;&#232;
FileRec.FileAtt:=FileAttrs;
FileRec.WorkDir:=WorkDir;
GetSimpleLstFile(FileRec,bufLST);//&#239;&#238;&#235;&#243;&#247;&#232;&#235;&#232; &#241;&#239;&#232;&#241;&#238;&#234; &#244;&#224;&#233;&#235;&#238;&#226; &#240;&#224;&#225;&#238;&#247;&#229;&#227;&#238; &#234;&#224;&#242;&#224;&#235;&#238;&#227;&#224;
                                                               // bufLST.SaveToFile("bufLST.111");
for ii:=0 to bufLST.Count-1 do//&#239;&#229;&#240;&#229;&#225;&#232;&#240;&#224;&#229;&#236; &#226;&#241;&#229; &#239;&#224;&#239;&#234;&#232; &#240;&#224;&#225;&#238;&#247;&#229;&#227;&#238;(&#226;&#245;&#238;&#228;&#237;&#238;&#227;&#238;) &#234;&#224;&#242;&#224;&#235;&#238;&#227;&#224;
  begin//&#228;&#235;&#255; &#234;&#224;&#230;&#228;&#238;&#233; &#239;&#224;&#239;&#234;&#232; &#240;&#224;&#225;&#238;&#247;&#229;&#227;&#238; &#234;&#224;&#242;&#224;&#235;&#238;&#227;&#224; &#232;&#249;&#229;&#236; &#226;&#235;&#238;&#230;&#229;&#237;&#237;&#251;&#229; &#239;&#224;&#239;&#234;&#232;
  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);//&#228;&#238;&#225;&#224;&#226;&#232;&#242;&#252; &#226; &#227;&#235;&#238;&#225;&#224;&#235;&#252;&#237;&#251;&#233; &#241;&#239;&#232;&#241;&#238;&#234; &#238;&#247;&#229;&#240;&#229;&#228;&#237;&#238;&#233; &#237;&#224;&#233;&#228;&#229;&#237;&#237;&#251;&#233; &#234;&#224;&#242;&#224;&#235;&#238;&#227;
          GetLstFolder(s,IncludeDir);//&#232;&#241;&#234;&#224;&#242;&#252; &#226;&#237;&#243;&#242;&#240;&#232; &#237;&#224;&#233;&#228;&#229;&#237;&#237;&#238;&#227;&#238; &#234;&#224;&#242;&#224;&#235;&#238;&#227;&#224;(&#226;&#251;&#231;&#226;&#224;&#242;&#252; &#241;&#224;&#236; &#241;&#229;&#225;&#255;)
          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.52 MB
Время: 0.045 c
14-1092225719
Тень отца Жука
2004-08-11 16:01
2004.08.29
Михайличенко уволен. Вместе него Сабо


1-1092656987
Diman
2004-08-16 15:49
2004.08.29
RichEdit


6-1088540567
S-Viper
2004-06-30 00:22
2004.08.29
локальные сети, IP...


14-1092287200
syte_ser78
2004-08-12 09:06
2004.08.29
writeln в кодировку win


14-1092041178
inic
2004-08-09 12:46
2004.08.29
В Delphi была горячая клавиша для вставки в редактор