Tässä onkin sitten vähän isohkompi esimerkkikoodi, toivottavasti ymmärrät mitä se tekee.Kiitos, mutta wrote:Kiitos vastauksesta.OonSuomesta wrote: Katso CB:stä komentojen StartSearch ja EndSearch esimerkit, ne valaisevat asiaa. Voit sitten ottaa tiedoston nimen ylös ja ladata sen myöhemmin vaikkapa kuvana.
Lähinnä haluaisin että ohjelman käyttäjä voisi etsiä tiedostoja inputin avulla.
Eli etsittävän tiedoston nimi tai pääte kirjoitettaisiin inputtiin ja sen jälkeen kun tiedostot
löytyy niin inputin avulla sen voisi myös ladata. Eli kirjoittamalla tiedoston koko nimen.
Yksinkertainen esimerkkikoodi helpottaisi hahmottamista.
Code: Select all
SCREEN 800,600 'Tarpeeksi iso ruutu teksteille
Repeat
Text 0,0, "Miten haluat etsiä tiedostoja?"
Text 0,13," [1] Tiedostojen nimen perusteella"
Text 0,26," [2] Tiedostojen tyypin perusteella"
valinta$ = Chr(GetKey())
DrawScreen
Until valinta="1" Or valinta="2"
If valinta = "1" Then
AddText "Kirjoita tiedoston nimen osa"
Else
AddText "Kirjoita tiedostopääte (ilman pistettä)"
EndIf
Repeat
etsi$ = Input(">> ")
DrawScreen
// Älä lopeta looppia ennen kuin on kirjoitettu jotain ja enteriä on painettu
Until KeyHit(cbkeyreturn) And Trim(etsi) <> ""
CloseInput
ClearText
// Vaihda kansiota kansioon Media
ChDir "Media"
// Valmistele etsintä
StartSearch
määrä=0
x=0 : y=0
Repeat
tiedosto$=FindFile()
If tiedosto$="" Then Exit 'Ei enempää tiedostoja
If Not IsDirectory(tiedosto$) Then
// Etsi vain tiedostoja, skippaa kansiot
If valinta = "2" Then
// Jos haluttiin etsiä tyypin mukaan...
If InStr(Lower(Right(tiedosto$,4)), etsi$) > 0 Then
// Tiedoston neljä viimeistä kirjainta
// sisälsivät etsittävän merkkijonon
AddText tiedosto$
määrä=määrä+1
If määrä*13 > ScreenHeight() And säädetty=0 Then
// Ruudun alaosa kohdattiin
Locate 300, 0
säädetty = 1
ElseIf määrä*13 > ScreenHeight()*2 And säädetty=1
// Ruudun alaosa kohdattiin toisen kerran
Locate 600, 0
säädetty = 2
ElseIf määrä*13 > ScreenHeight()*3 And säädetty=2
// Ruudun alaosa kohdattiin kolmannen kerran!
Locate 600,0
säädetty=3
EndIf
EndIf
Else
If InStr(Lower(tiedosto$), etsi$) > 0 Then
// Tiedoston nimestä löytyi etsittävä merkkijono
AddText tiedosto$
määrä=määrä+1
If määrä*13 > ScreenHeight() And säädetty=0 Then
// Ruudun alaosa kohdattiin
Locate 200, 0
säädetty = 1
ElseIf määrä*13 > ScreenHeight()*2 And säädetty=1
// Ruudun alaosa kohdattiin toisen kerran
Locate 400, 0
säädetty = 2
ElseIf määrä*13 > ScreenHeight()*3 And säädetty=2
// Ruudun alaosa kohdattiin kolmannen kerran!
Locate 600,0
säädetty=3
EndIf
EndIf
EndIf
EndIf
DrawScreen
Forever
// Lopeta etsintä
EndSearch
If määrä <> 1 Then
txt$ = "Löydettiin " + määrä + " tiedostoa"
Else
txt$ = "Löydettiin " + määrä + " tiedosto"
EndIf
AddText txt$
DrawScreen
WaitKey
Puhuttiin taas puuta heinää, poistin turhan osan viestistä