Търсачка във файлове

C++ JAVA
User avatar
dakata__92
Web-tourist
Web-tourist
Posts: 3277
Joined: Tue Aug 02, 2011 7:24 pm
Answers: 126

Re: Търсачка във файлове

Post by dakata__92 » Wed May 13, 2020 7:48 am

Revelation wrote:
Fri May 08, 2020 3:25 pm
Ако ти трябва за теб само, си включи WSL с едно Убунту и рънни линукската команда.


Иначе с PHP, най-вероятно трябва да си спретнеш нещо с pthreads или Process Control, за да ускориш процеса.

Ако не това, то аз бих разделял работата, подобно на Binary Search, но не точно. Понеже са много файлове, пускаш отпред и отзад да почнат да се ровят файловете. Ако не зареждаш целия файл в паметта, то тогава ще го четеш линейно (което е по-бавно). Ако не ти пречи да ги зареждаш в паметта, то ще можеш отново да ги четеш отпред и отзад, като естествено, трябва да ползваш един флаг, който да каже на всички, че си намерил каквото търсиш и да спре всички цикли и да изчисти паметта.

Ако успееш да го подкараш паралелно, ще е най-добре.
То лошото, като цяло е, че идеята на тази търсачка не бе това за което я използват в момента. Добра идея е да пусна няколко нишки да търсят. Все още не мога да подкарам и shell-а на колегата с findstr. Мисля, че с него ще ускоря търсенето и ще намаля писането, без да си играя да вдигам паралелни процеси.

User avatar
Ticketa
Турист
Турист
Posts: 480
Joined: Mon Feb 27, 2012 1:54 pm
Answers: 23
Location: in /root
Contact:

Re: Търсачка във файлове

Post by Ticketa » Wed May 13, 2020 9:49 am

Както казах преди това , пусни няколко реда (може и да не са същите просто примерна структура на съдържанието)

Числа, скоби, текст, кирилица, латиница, символи. Смятам, че е важно за да направя тест и да споделя различно мнение

Поздрави

User avatar
dakata__92
Web-tourist
Web-tourist
Posts: 3277
Joined: Tue Aug 02, 2011 7:24 pm
Answers: 126

Re: Търсачка във файлове

Post by dakata__92 » Wed May 13, 2020 10:51 am

Ticketa wrote:
Wed May 13, 2020 9:49 am
Както казах преди това , пусни няколко реда (може и да не са същите просто примерна структура на съдържанието)

Числа, скоби, текст, кирилица, латиница, символи. Смятам, че е важно за да направя тест и да споделя различно мнение

Поздрави
Прощавай, бях забравил, че искаше примери.
Файловете съдържат кирилица. Текста е само с главни букви и са на нов ред:

ТЕКСТОВ РЕД - ЕДНО
РЕД ДВЕ ОТ ФАЙЛА
ТРЕТИ РЕД СЪС СИМВОЛИ

User avatar
dakata__92
Web-tourist
Web-tourist
Posts: 3277
Joined: Tue Aug 02, 2011 7:24 pm
Answers: 126

Re: Търсачка във файлове

Post by dakata__92 » Fri May 22, 2020 5:57 am

Колеги, все още ми е актуална тази тема. За момента няма да правя допълнителни нишки. Със shell-а продължавам да се боря!

User avatar
Ticketa
Турист
Турист
Posts: 480
Joined: Mon Feb 27, 2012 1:54 pm
Answers: 23
Location: in /root
Contact:

Re: Търсачка във файлове

Post by Ticketa » Sun Jun 14, 2020 9:38 am

С латински букви няма проблеми, проблема е с кирилицата - не изкарва никакви резултати.
D:\>cd kuku

D:\kuku>findstr /s /i Тест D:\kuku\*.txt

D:\kuku>findstr /s /i BUHEM D:\kuku\*.txt
D:\kuku\kuku.txt:BUHEM

D:\kuku>findstr /s /i BUHEM D:\kuku\*.txt
D:\kuku\kuku.txt:BUHEM


D:\kuku>findstr /s /i BUHEM D:\kuku\*.txt
D:\kuku\kuku.txt:BUHEM


D:\kuku>findstr /s /i бухем D:\kuku\*.txt

D:\kuku>findstr /s /i БУХЕМ D:\kuku\*.txt

D:\kuku>findstr /s /i АБВГ D:\kuku\*.txt

D:\kuku>findstr /s /i АБВГ D:\kuku\*.txt

D:\kuku>findstr /s /i АБВГ D:\kuku\*.txt

D:\kuku>
Направих ексиперимент с chcp 65001, който се провали - директно cmd изчезна.

chcp 65001 е много опасен. Освен ако програма не е специално създадена да заобикаля дефектите в API на Windows (или използва библиотека за изпълнение на C, която има тези решения), тя няма да работи надеждно. Win8 отстранява 1/2 от тези проблеми с cp65001, но останалото все още е приложимо за Win10.

Основно проблема си е от самият шел. Ще търся алтернатива и пак ще пиша, освен ако не си открил решение.

ЕДИТ: Пробвах и chcp 1252 (CP1252) , обаче е резултата е негативен.

Code: Select all

D:\kuku>chcp 1252
Active code page: 1252

D:\kuku>findstr /s /i АБВГ D:\kuku\*.txt

D:\kuku>findstr /s /i АБВГ D:\kuku\*.txt

D:\kuku>

Не съм сигурен , но ако ползваш терминала https://sourceforge.net/projects/mingw-w64/ , може да има по-добър резултат, тъй като имаш следната опция: Image



Дори великият PowerShell ударих на греда с него.
PS D:\> [console]::InputEncoding


IsSingleByte : True
BodyName : cp866
EncodingName : Cyrillic (DOS)
HeaderName : cp866
WebName : cp866
WindowsCodePage : 1251
IsBrowserDisplay : True
IsBrowserSave : True
IsMailNewsDisplay : False
IsMailNewsSave : False
EncoderFallback : System.Text.InternalEncoderBestFitFallback
DecoderFallback : System.Text.InternalDecoderBestFitFallback
IsReadOnly : True
CodePage : 866



PS D:\> [console]::outputencoding


IsSingleByte : True
BodyName : cp866
EncodingName : Cyrillic (DOS)
HeaderName : cp866
WebName : cp866
WindowsCodePage : 1251
IsBrowserDisplay : True
IsBrowserSave : True
IsMailNewsDisplay : False
IsMailNewsSave : False
EncoderFallback : System.Text.InternalEncoderBestFitFallback
DecoderFallback : System.Text.InternalDecoderBestFitFallback
IsReadOnly : True
CodePage : 866



PS D:\>
Image

User avatar
dakata__92
Web-tourist
Web-tourist
Posts: 3277
Joined: Tue Aug 02, 2011 7:24 pm
Answers: 126

Re: Търсачка във файлове

Post by dakata__92 » Mon Jun 15, 2020 6:46 am

Все още издирвам вариант да търся по-бързо. Няма да вдигам нишките на търсене.

Post Reply