Builder.cz - Informacni server o programovani

Odběr fotomagazínu

Fotografický magazín "iZIN IDIF" každý týden ve Vašem e-mailu.
Co nového ve světě fotografie!

 

Zadejte Vaši e-mailovou adresu:

Kamarád fotí rád?

Přihlas ho k odběru fotomagazínu!

 

Zadejte e-mailovou adresu kamaráda:

Vyhledávání textu v souborech .txt

Seznam témat     Nová odpověď

Přihlásit se     Registrace     Zapomenuté heslo

Re: Vyhledávání textu v souborech .txt

Autor: honyk

23:09:13 14.10.2009

Nevim jak by to bylo rychle, ale jeste me napadla cesta pres split.

[code]a = Split(celyObsahSouboru, "hledanaFraze")
If UBound(a) > 0 Then 'neco nalezeno
b = Split(a(0), vbNewLine) 'rozsekni radky pred prvnim vyskytem
Debug.Print b(UBound(b)) & "hledanaFraze" 'vypise posledni radek pred prvnim vyskytem
End If[/code]

Citovat příspěvek

 

Re: Vyhledávání textu v souborech .txt

Autor: Gábina

17:04:30 14.10.2009

InStr vrátí pozici hledaného textu,
dále hledat konce předchozího řádku
a následujícího řádku, resp. cr a lf,
Chr(10) & Chr(13) od nalezené pozice
vpřed i vzad, pokud není vzad, tak
vzít text od začátku a není-li vpřed
tak načíst text až do konce, pak jen
zbývá délka textu vypočtená z hodnot
nalezených funkcí opět InStr a také
použijete Len pro celou délku textu
a dosadit do Mid(Text, Start, Délka),
čímž dostanete váš řádek s nalezeným
textem.
Celý postup pak můžete opakovat pokud se
v souboru nalezený text opakuje vícekrát.

Citovat příspěvek

 

Re: Vyhledávání textu v souborech .txt

Autor: JardaTrnka

12:41:57 14.10.2009

Zdravím,

tak program jsem upravil takto:(misto .txt souboru vyhledavam v .dat souborech)


Dim MyPath As String, MyName As String, MyFolder As String, SearchText As String

Private Sub Command1_Click()
SearchText = "text1.text"
MyFolder = "C:\DAB2\AAA\"
MyPath = MyFolder & "*.dat" ' Set the path.
MyName = Dir(MyPath, vbReadOnly) ' Retrieve the first entry.
Do While MyName <> "" ' Start the loop.
If HasTextInTextFile(MyFolder & MyName, SearchText) Then
Debug.Print MyName
End If
MyName = Dir ' Get next entry.
Loop
End Sub

Function HasTextInTextFile(ByVal TextFilePathToSought As String, ByVal TextBeingSearched As String) As Boolean
Dim fileNum As Integer
Dim strText As String

fileNum = FreeFile
Open TextFilePathToSought For Input As fileNum
Text2.Text = Input(LOF(fileNum), fileNum)
List1.AddItem (Text2.Text)
Close fileNum

If InStr(strText, TextBeingSearched) > 0 Then HasTextInTextFile = True

End Function

Private Sub Command2_Click()
Text1.Text = ""
Text2.Text = ""
Text1.SetFocus
List1.Clear
End Sub


Problem je v tom ze: po zadani hledaneho textu do text1 (nebo i kdyz tam nic nezadam) my to vypise do listboxu vzdy prvni radku z kazdeho souboru a ne tu radku kde je obsazen hledany text.

Nevite nekdo kde delam chybu ?

Díky za pomoc (jsem jeste zacatecnik)

JT

Citovat příspěvek

 

Re: Vyhledávání textu v souborech .txt

Autor: Gábina

10:31:24 02.10.2009

Jsem ráda,že to bylo k užitku a jak píše peko2,
vstupní první textbox s textem pro hledání,tlačíko
pro spuštění a zároveň obnovení hledání, posléze
vyhledané soubory zobrazit např. listbox, listview
a při výběru zobrazit obsah souboru v druhém textboxu,
tedy opět open statement a jeho text do textbox.text...
Fantazie nezná mezí, otevření souboru může být v druhém
formuláři nebo ho taky můžete otevřít přímo v notepadu.
Pokud budete chtít vytvořit vlastní text editor určitě
naleznete příklad sdi,mdi přimo ve vb6 včetně příkladu
na find a replace v textu, otevření a uložení souboru,
začlenění copy, cut a paste apod.
Mnoho zdaru a pěkný víkend všem!

Citovat příspěvek

 

Re: Vyhledávání textu v souborech .txt

Autor: peko2

8:14:48 02.10.2009

Vyhľadaný text? Ten predsa zadávaš ako konštantu (vo všetkých súboroch hľadáš jeden text). Iba že by si ho chcel zadávať do textboxu a potom cez nejaké tlačítko spustiť prehľadávanie (príklad). Alebo ešte jedna vec, chce by si výstup tvorený menami súborov, v ktorých sa daná fráza nachádza.
Obe veci sú dosť triviálne, pokiaľ si si vedel upraviť kód od Gábiny, tak toto nebude pre teba problém.
Ak sa jedná o niečo iné, prosím špecifikuj bližšie.

Citovat příspěvek

 

Re: Vyhledávání textu v souborech .txt

Autor: JardaTrnka

7:52:04 02.10.2009

Zdravím,

program jsem si upravil podle Gábiny.
Funguje. Díky

Slo by jeste aby se mi vyhledany text zobrazil např. v textboxu ?

Citovat příspěvek

 

Re: Vyhledávání textu v souborech .txt

Autor: Gábina

18:34:37 24.09.2009

Nepropracovaný vb6 příklad prohledání složky:
[code]
'dir function example
Dim MyPath, MyName, MyFolder, SearchText
SearchText = "pokus"
MyFolder = "C:\Documents and Settings\JardaTrnka\Dokumenty\"
MyPath = MyFolder & "*.txt" ' Set the path.
MyName = Dir(MyPath, vbNormal Or _
vbHidden Or vbSystem Or vbReadOnly) ' Retrieve the first entry.
Do While MyName <> "" ' Start the loop.
If HasTextInTetxFile(MyFolder & MyName, SearchText) Then
Debug.Print MyName
End If
MyName = Dir ' Get next entry.
Loop
[/code]

Zhruba funkce vb6 pro prohledání souboru:
[code]
'open statement and instr function
Function HasTextInTetxFile(ByVal TextFilePathToSought As String, ByVal TextBeingSearched As String) As Boolean
Dim fileNum As Integer
Dim strText As String

fileNum = FreeFile
Open TextFilePathToSought For Input As fileNum
strText = Input$(LOF(fileNum), fileNum)
Close fileNum

If InStr(strText, TextBeingSearched) > 0 Then HasTextInTetxFile = True
End Function
[/code]

Nebrán zřetel na existenci cesty, chyby a jejich ošetření...

Citovat příspěvek

 

Re: Vyhledávání textu v souborech .txt

Autor: Fano99

17:21:15 24.09.2009

Pomocí InStr bych hledal hledaný řetězec v každém řádku souboru. Řádek číst pomocí LineInput a soubory otevírat pomocí Open a Dir.

Citovat příspěvek

 

Vyhledávání textu v souborech .txt

Autor: JardaTrnka

9:55:11 24.09.2009

Zdravím,

dá se nějakým příkazem ve VB vyhledávat určitý text ve vícero souborech .txt umístěných v jedné složce ?
Příklad: hledám text "pokus" a chci zjistit jestli je obsažen v některém z 50 souborech typu .txt

Díky za radu

JT

Citovat příspěvek

 

 

 

Přihlášení k mému účtu

Uživatelské jméno:

Heslo: