<% Dim fso Dim f Dim strQ Dim filespec Dim i Dim arrLine Dim strLine Dim NotInStr Dim strOut
strQ = Request.Querystring("q") ' Søge string.
filespec = Server.Mappath("/search/search.txt") ' Søge i filen.
Set fso = CreateObject("Scripting.FileSystemObject") Set f = fso.OpenTextFile(filespec, 1) Do While Not f.AtEndOfStream strLine = f.ReadLine arrLine = Split(strQ, " ") ' Splitter SPACE op For i = 0 To UBound(arrLine) NotInStr = False If InStr(1, strLine, arrLine(i), vbTextCompare) = 0 Then ' Søger efter string NotInStr = True Exit For End If Next If NotInStr = False Then strOut = strOut & strLine & vbCrLf ' Tilføjer string End If Loop f.Close %>
<% Response.Write strOut ' Viser søgningen. Response.End %>
I dette særtema ser vi på, hvordan cloud og AI bliver fundamentet for virksomhedernes digitale forretning, og hvordan de nye muligheder for automatisering og forretningsværdi kan udnyttes uden at miste overblik, sikkerhed og menneskelig kontrol.
Du må i hvertfald kunne spare noget ved at flytte opsplitningen af strQ uden for løkken, så du ikke gentager det samme arbejde for hver eneste linie i filen, det kan også være det giver lidt at sætte UBound uden for løkken, altså noget i retning af:
Dim fso Dim f Dim strQ Dim filespec Dim i Dim arrLine Dim strLine Dim NotInStr Dim strOut Dim numWord
strQ = Request.Querystring("q") ' Søge string. arrLine = Split(strQ, " ") ' Splitter SPACE op numWord = UBound(arrLine)
filespec = Server.Mappath("/search/search.txt") ' Søge i filen.
Set fso = CreateObject("Scripting.FileSystemObject") Set f = fso.OpenTextFile(filespec, 1) Do While Not f.AtEndOfStream strLine = f.ReadLine For i = 0 To numWord NotInStr = False If InStr(1, strLine, arrLine(i), vbTextCompare) = 0 Then ' Søger efter string NotInStr = True Exit For End If Next If NotInStr = False Then strOut = strOut & strLine & vbCrLf ' Tilføjer string End If Loop f.Close
Hvis det ikke er nok, skal der tænkes mere kreativt og i den forbindelse er det vigtigt at vide: Er indholdet af search.txt nogenlunde konstant, eller er det nyt indhold hele tiden?
Det jeg mener er følgende: Hvis du er i den situation, at indholdet i search.txt aldrig eller kun sjældent ændrer sig kan du overveje at lave et separat program, der transformerer indholdet i search.txt til en form, der er mere velegnet til at søge på enkelte ord (uanset hvordan vi vender og drejer det: Lineær søgning efter nogle få ord gennem 2 Mb vil aldrig være den mest effektive metode). Der kan evt blive tale om at gemme det i en database, hvor man ved at slå op på et givet ord får udleveret samtlige linier, der indeholder dette ord - det kan dog sikkert også løses uden database, så skal der dog nok arbejdes lidt mere. Min tanke er, at et sådant program skulle køres forfra, hver gang der var en ændring i search.txt - derfor kravet om, at dette ikke må ske for ofte.
Ok, jeg tror jeg nøjes med det gode resutat af din kode :)
da den bliver ændrer ver 2 time af et andet program.
Takker mange gange :)
Synes godt om
Ny brugerNybegynder
Din løsning...
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.