Форум: "Начинающим";
Текущий архив: 2006.01.01;
Скачать: [xml.tar.bz2];
ВнизОбработка расширений файлов Найти похожие ветки
← →
Volf_555 (2005-12-12 13:20) [0]Суть в следующем:
Необходимо из списка файлов выделить все их расширения и произвести обработку их. То есть - допустим, есть следующие расширения, полученные со списка файлов:
*.rar
*.rar
*.exe
*.thm
*.rar
*.jpg
*.zip
*.zip
*.jpg
*.thm
*.zip
*.zip
Необходимо, чтобы в конечном результате вышло следующее:
*.rar
*.exe
*.thm
*.jpg
*.zip
Построить список расширений трудности не составляет.
А вот обработка - да...
Мой обработчик, который обрабатывает список неверно:
var
w,w1:TStringList;
e,r:Integer;
co:Integer;
cur:String;
x1:Integer;
x2:Integer;
...
begin
...
x1:=0;
x2:=w.Count-1;
for e:=x1 to x2 do
begin
Application.ProcessMessages;
cur:=w.Strings[e];
for r:=x1 to x2 do
begin
if w.Strings[r]=cur then
begin
memo1.Lines.Add("Всего было: "+IntToStr(x2));
memo1.Lines.Add("x1="+IntToStr(x1));
memo1.Lines.Add(IntToStr(r)+":"+w.Strings[r]+" deleted");
w.Delete(r);
x2:=x2-1;
x1:=x1+1;
memo1.Lines.Add("Всего осталось: "+IntToStr(x2));
memo1.Lines.Add("x1="+IntToStr(x1));
break;
end;
end;
co:=co+1;
w1.Add(cur);
listbox1.Items.Assign(w1);
memo1.Lines.Add("");
memo1.Lines.Add(IntToStr(co));
memo1.Lines.Add(w.Text);
//memo1.Lines.Add("w.String["+IntToStr(e)+"]:= "+cur);
end;
← →
Digitman © (2005-12-12 13:30) [1]"собачий синдром" : всё понимаю , а сказать не могу ...
← →
Игорь Шевченко © (2005-12-12 13:30) [2]StringList.Sorted := true
StringList.Duplicates := dupIgnore
StringList.AddStrings(w.Strings)
← →
umbra © (2005-12-12 13:33) [3]
while w.IndexOf(cur) <> -1 do
begin
{........................................}
w.Delete(w.IndexOf(cur));
{................................}
end;
w.add(cur);
← →
Digitman © (2005-12-12 13:33) [4]и при чем здесь "расширения" чего-то там ?
так и скажи : есть некий список строковых значений, где не исключены повторы, необходимо получить список уникальных строковых значений из этого исходного списка
← →
Игорь Шевченко © (2005-12-12 13:38) [5]Digitman © (12.12.05 13:30) [1]
"профессионалам отдельная просьба - быть снисходительными"
← →
Tor © (2005-12-12 15:41) [6]Так это у StringList есть кажись св-во которое разрешает или запрещает повторение. Или преред добавлением в результирующий список, прогони этот список на наличие такой строки.
← →
Digitman © (2005-12-12 15:45) [7]автор элементарного Паскаля не знает. а вы ему тут про св-ва TStringList долдоните)
> Volf_555 (12.12.05 13:20)
это что за галиматья
x2:=x2-1;
x1:=x1+1;
?
объяснить в состоянии ?
в соответствии со спецификацией языка Паскаль ?
← →
Volf_555 (2005-12-12 18:44) [8]Игорь Шевченкo, большое вам спасибо - это то, что мне надо было
← →
Leonid Troyanovsky © (2005-12-12 18:57) [9]
> Volf_555 (12.12.05 18:44) [8]
> Игорь Шевченкo, большое вам спасибо - это то, что мне надо
> было
Честно говоря, ты должен еще одно "спасибо", to
Digitman © (12.12.05 15:45) [7]
Иначе будущее, IMHO, обречено.
--
Regards, LVT.
← →
Volf_555 (2005-12-12 19:15) [10]
> Digitman © (12.12.05 15:45) [7]
> автор элементарного Паскаля не знает. а вы ему тут про св-
> ва TStringList долдоните)
В смысле - что я не знаю? Как изменять свойства компонента? Это всем известно. Просто не знал про существование таких свойств.
← →
Leonid Troyanovsky © (2005-12-12 19:22) [11]
> Volf_555 (12.12.05 19:15) [10]
> > Digitman © (12.12.05 15:45) [7]
> > автор элементарного Паскаля не знает. а вы ему тут про
> Просто не знал про существование таких свойств.
Про существование свойств многие грешат (не страшно).
Важно > Digitman © (12.12.05 15:45) [7]
(Hint: Object Pascal Language Guide: Object Pascal grammar &etc.)
--
Regards, LVT.
← →
Игорь Шевченко © (2005-12-13 11:11) [12]Digitman © (12.12.05 15:45) [7]
Leonid Troyanovsky © (12.12.05 19:22) [11]
> x2:=x2-1;
> x1:=x1+1;
А в чем криминал и несоответствие спецификации языка Паскаль в данном коде ?
← →
Johnmen © (2005-12-13 11:20) [13]>Игорь Шевченко © (13.12.05 11:11) [12]
Не понятно, чего хотел, учитывая for r:=x1 to x2 do
:)
← →
Хинт © (2005-12-13 11:21) [14]2Игорь Шевченко
Наверное имеется ввиду изменение значения переменных, используемых в заголовке цикла, в его теле
← →
Игорь Шевченко © (2005-12-13 11:37) [15]Johnmen © (13.12.05 11:20) [13]
Чего хотел, понятно: выводить сообщение.
Код:unit Unit1;
interface
uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
StdCtrls;
type
TForm1 = class(TForm)
Button1: TButton;
Memo1: TMemo;
procedure Button1Click(Sender: TObject);
end;
var
Form1: TForm1;
implementation
{$R *.DFM}
procedure TForm1.Button1Click(Sender: TObject);
var
I, J, K: Integer;
begin
J := 0;
K := 5;
for I:=J to K do begin
J := J + 1;
K := K - 1;
Memo1.Lines.Add (Format("Iteration %d, J=%d, K=%d", [I, J, K]));
end;
end;
end.
Результат:
Iteration 0, J=1, K=4
Iteration 1, J=2, K=3
Iteration 2, J=3, K=2
Iteration 3, J=4, K=1
Iteration 4, J=5, K=0
Iteration 5, J=6, K=-1
В чем проблема, в упор не вижу
← →
Хинт © (2005-12-13 11:46) [16]2Игорь Шевченко
Не знал, что так можно делать. Просто запомнил, что в TP в таком случае выдавался Error и запустить программу было невозможно.
← →
Игорь Шевченко © (2005-12-13 11:52) [17]Хинт © (13.12.05 11:46) [16]
TP у меня под рукой, разумеется, нету, а то, что граничные условия цикла for вычисляются один раз перед выполнением цикла документировано в Object Pascal Language Guide :)
Независимо от гайки "Оптимизация".
В противном случае циклы от 1 до Length(строка) работали бы ужасающе медленно.
← →
Хинт © (2005-12-13 11:59) [18]Прошу прощения. Еще не проснулся =) Запрет стоит на изменение переменной "I"...
← →
Leonid Troyanovsky © (2005-12-13 13:02) [19]
> Игорь Шевченко © (13.12.05 11:11) [12]
> > x2:=x2-1;
> > x1:=x1+1;
> А в чем криминал и несоответствие спецификации языка Паскаль
> в данном коде ?
Криминала нет, но, за такую "экономию" из рогатки убивать надо.
А почитать полезно, по-крайней мере, как пример изложения.
--
Regards, LVT.
← →
Игорь Шевченко © (2005-12-13 13:05) [20]
> А почитать полезно, по-крайней мере, как пример изложения.
Ну это в любом случае полезно.
Страницы: 1 вся ветка
Форум: "Начинающим";
Текущий архив: 2006.01.01;
Скачать: [xml.tar.bz2];
Память: 0.5 MB
Время: 0.009 c