Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Приватык!!! :) Помогите плиз с вопросом: [D6, WinME, WinXP]


minnic ©   (2002-11-02 20:19:00) 

Допустим дано 4 слова: камень, гайка, дом, медведь.
Как вывести их по алфавиту(Програмный код, а не свойство компонентов)???


Tano   (2002-11-04 06:31:00) [1]

Могу выслать мой аналог OpenDialog для Pascal for DOS - там и диски выбираются и список файлов сортируется и даже по расширениям подцвечивать можно.

По существу:

1) Напиши свою функцию сравнения строк.
Дальше у тебя >=2 пути:

a) Считать все названия файлов в динамический список (см. Любой учебник по Паскалю), напиши процедуру обмена элементами списка. Наконец выбрать метод сортировки и используя заготовленные функции сравнения и обмена произвести сортировку.
b) Строить динамический список, включая каждое новое имя файла в надлежащую по порядку позицию.

К этому неплохо бы написать функцию быстрого выцарапывания очередного названия файла, что-то наподобие FileName(i) и разумеется завести переменную FileNamesCount.
Конкретного кода для Delphi у меня нет, но (см.начало сообщения) подобное я делал => работоспособная идея.


Zhirnov Maxim   (2002-11-03 17:46:00) [2]

А простое сравнеие строк и их перестановка разве не подходит.
Ведь сравнение происходит по таблице символов, а там всё по алфавиту. Единственная проблема может возникнуть если в слове смесь русских и английских символов, ведь массив русских символов разбит на два, но эта проблема разрешима.
If String1 < String2 then
begin
TempString := String1;
String1 := String2;
String2 := TempString;
end;


Юрий Зотов   (2002-11-03 17:38:00) [3]

> minnic

Хорошо, давайте без классов. Для начала скажите - какие методы сортировки Вы знаете? Какой из них Вам больше всего подходит? На него и будем дальше ориентироваться.


minnic   (2002-11-03 17:23:00) [4]

Yegor Derevenets - mukha говорит использовать Tstringlist а это подключение доп. библиотек. Я так и делаю (FindFirst, FineNext, FindClose) а мне надо потом все что получил отсортировать БЕЗ ДОП БИБЛИОТЕК!!!!
Сатир ты меня не правильно понял


Сатир   (2002-11-03 15:32:00) [5]

запускаешь FAR, выбираешь диск С: нажимаешь
ctrl+F3 и получаешь уже отсортированый список по именам, ctrl+F4 - по расширениям,
ctrl+F5 - по времени изменения,
ctrl+F6 - по размеру,
ctrl+F7 - несортированый список,
ctrl+F8 - по времени создания,
ctrl+F9 - по времени доступа,
ctrl+F10 - по описанию,
ctrl+F11 - по владельцу

и нинада никакова паскаля разом с делфями
ЗЫ.;)


Yegor Derevenets   (2002-11-03 15:05:00) [6]

А прочитать список папок (FindFirst, FineNext, FindClose)и сделать как говорит mukha не судьба?


Aleks1   (2002-11-03 04:29:00) [7]

>minnic (03.11.02 02:38)
>Не народ!!!
>Слова не я загружаю!!! камень, гайка, дом, медведь - к >примеру!!!
>А вот мне надо отсортировать папки и файлы на C:\ не используя >classes и StdCtrls

Если "слова" ты не загружаешь, а "сортируешь папки", то - "Как, черт возьми"?


minnic   (2002-11-03 02:38:00) [8]

Не народ!!!
Слова не я загружаю!!! камень, гайка, дом, медведь - к примеру!!!
А вот мне надо отсортировать папки и файлы на C:\ не используя classes и StdCtrls


mukha   (2002-11-02 23:04:00) [9]

В run-time создай TStringList, загрузи в него свои слова, отсортируй, а затем из TStringList верни обратно (откуда брал) и уничтожь TStringList.


minnic   (2002-11-02 20:29:00) [10]

Большой сенкс


Anatoly Podgoretsky   (2002-11-02 20:28:00) [11]

Если проблемы с алгоритмами, то используем TStringList и его свойство Sort


Юрий Зотов   (2002-11-02 20:27:00) [12]

Любой метод сортировки с использованием AnsiCompareText для сравнения строк.


Алексей Ким   (2002-11-02 20:22:00) [13]

открываем запылившийся учебник паскаля и видим....
очень хорошую штуку зовется ord()


Наверх

Титульная страница Поиск, карта сайта Написать письмо