Модераторы: Akina
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Сортировка по алфавиту txt файл 
:(
    Опции темы
XFq
Дата 13.3.2006, 02:55 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 6
Регистрация: 13.3.2006

Репутация: нет
Всего: нет



[edit]

Это сообщение отредактировал(а) XFq - 12.9.2008, 19:02
PM MAIL   Вверх
Akina
Дата 13.3.2006, 10:20 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Советчик
****


Профиль
Группа: Модератор
Сообщений: 20581
Регистрация: 8.4.2004
Где: Зеленоград

Репутация: 34
Всего: 454



Код

shell "cmd /c sort <in.txt >out.txt"



--------------------
 О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума.

PM MAIL WWW ICQ Jabber   Вверх
XFq
Дата 13.3.2006, 18:15 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 6
Регистрация: 13.3.2006

Репутация: нет
Всего: нет



[edit]

Это сообщение отредактировал(а) XFq - 12.9.2008, 19:03
PM MAIL   Вверх
Akina
Дата 13.3.2006, 18:33 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Советчик
****


Профиль
Группа: Модератор
Сообщений: 20581
Регистрация: 8.4.2004
Где: Зеленоград

Репутация: 34
Всего: 454



Вот тебе способ для самых ленивых:

Кидаешь на форму ComboBox cb. Скрытый. Далее
Код
' Warning - draft code
op.ShowOpen
cb.Clear
cb.Sorted=False
Open op.FileName For Input As #1
do while not eof(1)
  line input #1,temp
  cb.AddItem temp
loop
close #1
cb.Sorted=True
op.ShowSave
Open op.FileName For Output As #1
for i=0 to cb.ListCount-1
  print #1,cb.List(i)
next
close #1
cb.Clear



--------------------
 О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума.

PM MAIL WWW ICQ Jabber   Вверх
XFq
Дата 13.3.2006, 20:50 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 6
Регистрация: 13.3.2006

Репутация: нет
Всего: нет



Спасибо! буду пробовать
Добавлено @ 21:01
Мож я что то не так делаю но:
когда доходит до cb.Sorted=False возникает ошибка и пишет Не может назначить свойство только для четения
я всё сделал вроде бы правельно, кинул ComboBox ставлю имя cb не чего не выходит...в чём проблема?
PM MAIL   Вверх
Voldemar2004
Дата 14.3.2006, 18:47 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1650
Регистрация: 25.12.2004

Репутация: 7
Всего: 23



Цитата(XFq @ 13.3.2006, 02:55 Найти цитируемый пост)
как мне отсортировать TXT файл по алфавиту,
Загоняешь содержимое файла (разбиваешь на строки, где строка - это элемент массива) в массив, далее сортируешь. Только на VB скорость оставляет желать лучшего. smile



--------------------
i_i 
(';') 
(V)

user posted image
PM MAIL   Вверх
XFq
Дата 14.3.2006, 19:54 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 6
Регистрация: 13.3.2006

Репутация: нет
Всего: нет



это то легко ) но как отсортировать вот чо я не понял, я даже не представляю...
PM MAIL   Вверх
Voldemar2004
Дата 14.3.2006, 20:43 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1650
Регистрация: 25.12.2004

Репутация: 7
Всего: 23



Цитата(XFq @ 14.3.2006, 19:54 Найти цитируемый пост)
как отсортировать

Код
Option Explicit

Private Sub Command1_Click()
Dim a(4) As String

' например это ты считал из файла:
Dim i As Integer
a(0) = "Слово"
a(1) = "Другое слово"
a(2) = "Еще одно слово"
a(3) = "Арбуз"

For i = 0 To 4
Print a(i)
Next i

' самая простая сортировка:
Dim m As Integer
Dim swap As String
m = 4

Do
    For i = 0 To m - 1
        If a(i) > a(i + 1) Then
            swap = a(i)
            a(i) = a(i + 1)
            a(i + 1) = swap
        End If
    Next i
    m = m - 1

Loop While m > 0

For i = 0 To 4
Print a(i)
Next i    

End Sub
Эта сортировка работает так: предположим у тебя есть массив {10, 230, 0, -5, 11} сравниваются элементы 10>230 = ложь - обмена не происходит, 230 > 0 = истина - произошел обмен:
{10, 0, 230, -5, 11} далее сравниваем: 230 > -5 = истина - обмен: {10, 0, -5, 230, 11}, в конце: {10, 0, -5, 11, 230}. Но это не отсортированный массив, поэтому и применяется Do...Loop While(..).

Вот пример на языке Си smile , только здесь немного другая сортировка: ищем максимальный элемент массива, затем меняем местами последний элемент массива с тем элементом, на месте которго нашли максимальный, затем диапазон массива, где происходит поиск max уменьшается на 1 и так до тех пор, пока массив не будет отсортирован: {10, 230, 0, -5, 11} -> {10, 11, 0, -5, 230} -> {10, -5, 0, 11, 230} -> {0, -5, 10, 11, 230} -> {-5, 0, 10, 11, 230}.

Код
unsigned const N=100;
float array[N];

        //запишем рандомизированный массив
        for(int i=0; i<N; i++)
        {
        array[i]=0.1234*rand();
        }

// сортировка:
int mm, i, j;
float tmp;

for(i=N-1; i>=1; i--){
mm=0;
        for(j=1; j<=i; j++)
                if(array[j]>array[mm])
                mm=j;

                tmp=array[i];
                array[i]=array[mm];
                array[mm]=tmp;
}
XFq, а теперь сравни скорость VB6 и С++ - поставь N=10000.


--------------------
i_i 
(';') 
(V)

user posted image
PM MAIL   Вверх
Тутанхамец
Дата 15.3.2006, 12:00 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 612
Регистрация: 10.10.2005
Где: в пирамидЕ!

Репутация: 4
Всего: 6



Цитата

Код

 shell "cmd /c sort <in.txt >out.txt"



Класс!)
Добавлено @ 12:00
Блин, жаль, что я это узнал только сейчас... smile
PM MAIL   Вверх
amt
Дата 15.3.2006, 21:39 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 249
Регистрация: 26.10.2004
Где: г. Волгоград

Репутация: 3
Всего: 3



Цитата

когда доходит до cb.Sorted=False возникает ошибка и пишет Не может назначить свойство только для четения

ИМХО в коде Akina строки

Код

cb.Sorted=False

и
Код

cb.Sorted=True

вообще не нужны. Они действительно вызывают ошибку. Нижно сразу для Combobox задать в свойствах сортировку True и должно все работать.

Это сообщение отредактировал(а) amt - 15.3.2006, 21:42
--------------------
С точки зрения банальной эрудиции не каждый индивидуум способен игнорировать тенденции парадоксальных эмоций.
PM MAIL   Вверх
XFq
Дата 16.3.2006, 04:59 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 6
Регистрация: 13.3.2006

Репутация: нет
Всего: нет



amt попробую щас
Добавлено @ 05:11
amt РЕСПЕКТ! действительно! работает! всё всем СПАСИБО!
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "VB6"
Akina

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами

  • Литературу по VB обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь
  • Используйте теги [code=vb][/code] для подсветки кода. Используйтe чекбокс "транслит" (возле кнопок кодов) если у Вас нет русских шрифтов.


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Akina.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | VB6 | Следующая тема »


 




[ Время генерации скрипта: 0.0913 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.