Главная страница
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.03 c
6-1088582476
adLer
2004-06-30 12:01
2004.08.29
Создание чата


8-1086276830
Borealis
2004-06-03 19:33
2004.08.29
RIFF CDXA


1-1092317081
Nata
2004-08-12 17:24
2004.08.29
CopyFiles


11-1080145786
nester
2004-03-24 19:29
2004.08.29
Почему не срабатывает ItemData в ListView?


1-1092389307
Strimer
2004-08-13 13:28
2004.08.29
Пустая дата в DateTimePicker