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

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Поиск одинаковых строк, Найти общее в двух списках 
:(
    Опции темы
Saturn65
Дата 23.10.2006, 00:38 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



                            Здравствуйте!
Даны два ListBoxa. В один загружается список из текстового файла (чтение информации из текстового файла с посл. доступом). В другой загружается список файлов( например *.avi), находящихся в папке . Как сделать так, чтоб при совпадении названий в одном ListBoxе и в другом выводилось сообщение. Т.е. если в одном и другом ListBoxе будет один и тот же текст (***) или совпадающая строка( по названию, а не по расширению), то выводилось бы сообщение. 
Списки у меня выводятся.
Я просто не знаю по каким пораметрам сравнить. 
Это своего рода программа для поиска дубликата файлов.
Заранее благодарен! Хотелось бы пример.
PM MAIL   Вверх
XPurple
Дата 23.10.2006, 06:19 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



Воспользуйтесь регулярными выражениями
--------------------
Кто никогда ни о чем не спрашивает: тот либо знает все, либо не знает ничего.  Не помню, кто сказал, может быть, я   (с) 
PM MAIL   Вверх
ИгнатьевАлексей
Дата 23.10.2006, 07:57 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



Цитата

Как сделать так, чтоб при совпадении названий в одном ListBoxе и в другом выводилось сообщение.


Цитата

Я просто не знаю по каким пораметрам сравнить. 


Прошу прощения, но, имхо, эти две твои фразы противоречивы! Ты сравниваешь файлики по названию, не так ли? В чем проблема? 
Может вопрос в том, как отделить название файла от расширения? Можно с помощью регулярных выражений, а если не знаком, то и VB имеет достаточно функций по работе со строками для выполнения этой операции. Если не знаешь какие, то подскажем!

Имхо, главный секрет в решении проблемы в форуме - задавать конкретные вопросы!


--------------------
Vingrad - FOREVER !!! 

"Как вы яхту назовете - так она и поплывет!" 
 Капитан Врунгель 
PM MAIL   Вверх
Saturn65
Дата 23.10.2006, 18:38 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



Виноват. Сравнивать то я знаю по каким параметрам - по названию. Я просто не правильно выразился. Правильным будет так: Как при совпадении названий выводить сообщение. Короче говоря нужен скрипт, который найдет совпадающие строки.


PM MAIL   Вверх
Akina
Дата 23.10.2006, 23:38 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


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


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

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



Сортровка списков, после чего последовательное сравнение с двумя курсорами.

Код
' Algorithm - NOT A CODE!!!
List1.Sort
List1.MoveTop
List2.Sort
List2.MoveTop
While (Not List1.EOF) AND (Not List2.EOF)
    If List1!Item > List2!Item Then
        List2.MoveNext
    ElseIf  List2!Item > List1!Item Then
        List1.MoveNext
    Else
        MsgBox List1!Item 
        List1.MoveNext
        List2.MoveNext
    End If
Wend



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

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


Эксперт
***


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

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



Цитата(Saturn65 @  23.10.2006,  01:38 Найти цитируемый пост)
Как сделать так, чтоб при совпадении названий в одном ListBoxе и в другом выводилось сообщение.
Здесь http://forum.vingrad.ru/topic-110097/view/all/index.html у человека была такая же примерно проблема, я там описал 2 варианта решения. А для твоего случая, Saturn65, так:
Код
#include <iostream.h>
#include <conio.h>

int main()
{
const int k=10, l=10;

/* Пусть это ListBox1 */
int a[k] = {1, 3, 76, 34, 654, 7653, 345, 3456, 75, 22};

/* Пусть это ListBox2 */
int b[l] = {1, 2, 3, 4, 5, 6, 34, 654, 3456, 75};

       for(int i=0; i<k; i++)
       {

       bool flag = false;
       
        for(int j=0; j<l; j++)
        if( a[i] == b[j] ) flag=true;

        if (flag) cout << a[i] << '\t' ;
       }

getch();

return 0;
}
Перевести в VB труда не составит. smile 

Это сообщение отредактировал(а) Voldemar2004 - 27.10.2006, 20:23


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

user posted image
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "VB6"
Akina

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

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

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

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


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

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


 




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


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

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