Наши проекты:
Журнал · Discuz!ML · Wiki · DRKB · Помощь проекту |
||
ПРАВИЛА | FAQ | Помощь | Поиск | Участники | Календарь | Избранное | RSS |
[18.222.86.149] |
|
Страницы: (8) [1] 2 3 ... 7 8 все ( Перейти к последнему сообщению ) |
Сообщ.
#1
,
|
|
|
Поспорили мы как-то с B.V..
Я: "Vb is dead, на нем ничего толкового не напишешь, а если и напишешь, то будет " B.V.: "кроме драйверов в VB можно сделать все. Абсолютно все." Ну что ж, решили написать простейшую прогу, пусть её заценит народ и сравнит, а также исходники. В файле строки, нужно сказать сколько строк в файле содержат нашу строку без учета регистра. пункты по которым оценивать, в порядке приоритета 1. Правильность работы 2. Скорость работы приложения - выполнение задачи 2. Интерфейс - чтобы все было гладко, и не криво, работало уверенно, не моргало. 4. Скорость разработки Не забывайте оценивать исходники! 4 ый пункт оценить сложно, но судя по нашим словам - B.V. справился за 15 минут, я - за минут 30 + тестирование. Каждый аттачит свой вариант. (у меня файл с именем ChangeLog-2.6.10 должен лежать рядом с exeшником) Прикреплённый файлxpis.rar (84.76 Кбайт, скачиваний: 218) |
Сообщ.
#2
,
|
|
|
Я снимаю свою программу по двум причинам: 1. Пример от XPiS у меня работать отказался. 2. Тема не предусматривалась для Delphi, оптимизаций примеров и т.д. |
Сообщ.
#3
,
|
|
|
Цитата XPiS @ В файле строки, нужно сказать сколько строк в файле содержат нашу строку без учета регистра. пункты по которым оценивать, в порядке приоритета 1. Правильность работы 2. Скорость работы приложения - выполнение задачи 2. Интерфейс - чтобы все было гладко, и не криво, работало уверенно, не моргало. 4. Скорость разработки 1) Чем разделены строки? 2) Откуда береться подстрока которую мы ищем? 3) Какой еще интерфейс(в проге на пару строк кода...?) |
Сообщ.
#4
,
|
|
|
10 минут
Добавлено Кто удалил мое предыдущее сообщение? Это некрасиво, нужно хотя бы отклонять. Прикреплённый файлDelphi.zip (166.62 Кбайт, скачиваний: 170) |
Сообщ.
#5
,
|
|
|
Цитата LuckLess @ 1) Чем разделены строки? 2) Откуда береться подстрока которую мы ищем? 3) Какой еще интерфейс(в проге на пару строк кода...?) 1. видно из тестового файла, что crlf 2. поле ввода на форме 3. интерфейс общий, максимум простоты |
Сообщ.
#6
,
|
|
|
Первое впечатление от проги B.V.:
Цитата component "comctl32.ocx" .... unregistered.... Добавлено Первое впечатление от проги XPiS: текстового файла нету (кстати зачем было хардкодить название?), а прога че-то ищет себе |
Сообщ.
#7
,
|
|
|
Цитата XPiS @ 1. видно из тестового файла, что crlf 2. поле ввода на форме 3. интерфейс общий, максимум простоты гм. вечером скину свой вариант.. |
Сообщ.
#8
,
|
|
|
Цитата cozzzy @ кстати зачем было хардкодить название? для чистоты эксперимента. тестовый файл нужно скачать по ссылке, указана в первом посте Добавлено LuckLess, ну понятно, что он будет крут, тем более что сам лаклесс будет писать, можно stl не юзать, так вообще самолет будет в данном случае это не честно, нужны условия близкие к реальным |
Сообщ.
#9
,
|
|
|
Цитата XPiS @ в данном случае это не честно, нужны условия близкие к реальным Т.е. код написанный лаклессом - это не реально? |
Сообщ.
#10
,
|
|
|
Кстати, по моим субъективным впечатлениям мой вариант и работает быстрее.
|
Сообщ.
#11
,
|
|
|
Цитата cozzzy @ Т.е. код написанный лаклессом - это не реально? реально для меня пока нет, да и B.V. вроде не гуру можно еще на асме написать Добавлено Smike зато во время поиска диалог висит без движения... |
Сообщ.
#12
,
|
|
|
Цитата XPiS @ Smike зато во время поиска диалог висит без движения... Ну если вместо ProgressBar.Update написать Application.ProcessMessages будет не намного дольше |
Сообщ.
#13
,
|
|
|
Хех. Не больше 10-ти минут:
#include <iostream> #include <fstream> #include <string> #include <algorithm> bool CompareFn(char ch1, char ch2) { return tolower(ch1) == ch2; } int main(int argc, char** argv) { if (argc != 3) { std::cout << "You must specify filename and search string" << std::endl; return -1; } std::string pattern(argv[2]); std::transform(pattern.begin(), pattern.end(), pattern.begin(), tolower); std::ifstream f(argv[1]); if (!f.good()) { std::cout << "Can't open file " << argv[1] << std::endl; return -2; } int lines_count = 0; while (f.good()) { std::string line; getline(f, line); if (line.size() != pattern.size()) continue; if (std::mismatch(line.begin(), line.end(), pattern.begin(), CompareFn).first != line.end()) continue; lines_count ++; } std::cout << "Matched lines: " << lines_count << std::endl; return lines_count; } |
Сообщ.
#14
,
|
|
|
Smike там задача без учета регистра
хватит флеймить кстати Добавлено Flex Ferrum Я так и знал что сейчас писал!!! Добавлено правда надо было гуи именно такое как у нас это было условие |
Сообщ.
#15
,
|
|
|
Цитата Smike @ вариант и работает быстрее. Похоже на то. Но поиск по строке "I" (то есть "я") в делфи варианте выдает 3967 строк, а в с++ 27432 З.Ы. Вариает B.V. попробовать так и не удалось |