Script hjælp..

Software d.  04. august. 2005, skrevet af HAM
Vist: 204 gange.

HAM
 
Overclocker
Tilføjet:
04-08-2005 18:01:34
Svar/Indlæg:
47/9
Jeg har brug for lidt hjælp her. Skal bruge et script (tror jeg nok)..

Skal ha' scriptet til at slå et ord op i en .txt fil, og så returnere den linje som søgeordet står på. Søgeordet kan fremkomme flere gange i .txt filen, men alle resultaterne skal kunne returneres. Skal kunne integreres i html dokumenter. Så man bare kan opdatere .txt filen, og så bliver html siderne opdateret automatisk.
Tror nok at det er et script jeg skal bruge, men andre forslag er velkomne.

Skal lige siges at jeg ved nada om at lave scripts.
Håber I forstår hvad jeg mener..

mvh
HAM

foo
 
Elitebruger
Tilføjet:
04-08-2005 18:16:52
Svar/Indlæg:
1685/240
Ja det er et script du skal have fat i - det første vi skal vide er hvad du har af mulighederfor eksekvering, er det PHP, ASP eller en hel tredje teknologi du benytter dig af eller har mulighed for at benytte dig af...

\\foo`



HAM
 
Overclocker
Tilføjet:
04-08-2005 18:48:07
Svar/Indlæg:
47/9
Jaaa.... Er ikke helt sikker, da det er en "færdig" pakke. Jeg har ikke kodet det hele selv.
Det er noget jeg er blevet rodet ud i.. En forening kunne ikke selv finde ud af det.

Har adgang til serveren, og der ligger en del .htm og .asp.



foo
 
Elitebruger
Tilføjet:
04-08-2005 21:11:08
Svar/Indlæg:
1685/240
ok hvis der ligger ASP, så må vi gå ud fra serveren kan eksekvere ASP - men det burde rimelig nemt kunne laves i ASP...



HAM
 
Overclocker
Tilføjet:
04-08-2005 21:17:22
Svar/Indlæg:
47/9
Det lyder godt :) Er det noget du kan lave?



foo
 
Elitebruger
Tilføjet:
05-08-2005 09:43:12
Svar/Indlæg:
1685/240
jeg har siddet og tænkt lidt over det her til morgen, og har måske fundet en måde at gøre det på...

det skal lige siges at det slet ikke er testet så måske får du nogle fejl, men så er du velkommen til at PM mig... :)

<%
Dim fso, f, filespec
Set fso = CreateObject("Scripting.FileSystemObject")
filespec = Server.Mappath("/[tekstfil.txt]")
Set f = fso.OpenTextFile(filespec,1)

' Læs linie for linie indtil slutningen af filen

Do While not f.AtEndOfStream

txt = f.Readline

If Instr(txt, [søgeord]) <> 0 Then
Response.write txt & "&lt;br&gt;"
End if
Loop

f.Close
set fso = nothing
%>

linie 1 definerer du dine variabler du skal bruge med kommandoen DIM, derefter sætter du fso ti lat være et filobjekt på serveren med set.
filespec kommer til at indeholde stien til filen ved hjælp af Server.MapPath() funktionen, og så bliver filen sat til variablen f ved hjælp af filespec og fso.
Derefter laves der en Do While løkke som køres indtil bunden af filen er nået, og ved hvert gennemløb hentes en linie ind i txt. If sætningen siger så at hvis dit søgeord ligger i den linie (instr() returnerer andet end 0) så skal linien udskrives, og løkken køres forfra.
de sidste to linier er bare for at lukke forbindelsen til filen igen.

og husk <% %> i start og slut for ellers virker det ikke :)

er ikke helt sikker på at instr() virker helt, men her er du velkommen til at kontakte mig enten på mail anhe85@gmail.com eller med en PM...

Det skulle gerne have den funktion du er ude efter.

\\foo`



foo
 
Elitebruger
Tilføjet:
05-08-2005 09:46:01
Svar/Indlæg:
1685/240
hmmm det fucker lidt med de smileys der ;) - begge tilfælde skal der kun stå en ) istedet for...



HAM
 
Overclocker
Tilføjet:
05-08-2005 10:59:48
Svar/Indlæg:
47/9
Har sendt en PM.



foo
 
Elitebruger
Tilføjet:
05-08-2005 13:03:44
Svar/Indlæg:
1685/240
Så har jeg en der virker... du kan tjekke den ud på

http://109.dk/foo/gejl/searchs...

den leder i denne fil: http://109.dk/foo/gejl/indhold...

og hente sourcen samt en test txt fil på

http://109.dk/foo/gejl/searchs...

Jeg har fyldt lidt kommentarer i dokumentet så du selv burde kunne rive det sidste rundt, men ellers må du lige skrive igen...



HAM
 
Overclocker
Tilføjet:
05-08-2005 15:58:12
Svar/Indlæg:
47/9
Giver mig lige til at lege lidt med den. Vender tilbage senere.



#10
HAM
 
Overclocker
Tilføjet:
05-08-2005 16:58:49
Svar/Indlæg:
47/9
Nu virker den faktisk som den skal.

Du mangler jeg bare lidt finpudsning..
Er det muligt at give de forskellige linjer overskrifter? Evt. nogle fra .txt filen, hvis det er delt op i afsnit. Eller måske nogle statiske?
Er det muligt at få den til at blive ved med at beholde de mellemrum og tabulator-rum (eller hvad det nu hedder), som der er i .txt filen?



#11
foo
 
Elitebruger
Tilføjet:
05-08-2005 17:46:44
Svar/Indlæg:
1685/240
nu ved jeg ikke helt hvad du mener med overskrift, men hvis du mener at der i txt filen skal stå noget med

overskrift
-inhold

hvor den så udskriver indholdet under hver overskrift, så ja så skulle det være muligt, men det vil dog kræve en hel del omskrivning.

Om du kan få den til at overholde tabuleringer.. hehe ja den er straks mere tricky, da du ikke har nogen tabulering i html, det du evt kunne gøre var at bytte tabuleringerne i txt filen ud med ; og ændre den linie der hedder response.write() ud med Response.Write(Replace(txt, ";", "    ") & "
") - den linie vil udksifte ; hvergang det bliver mødt i txt med 4 store mellemrum, så får du noget tab lignende noget....



#12
HAM
 
Overclocker
Tilføjet:
05-08-2005 19:23:06
Svar/Indlæg:
47/9
Okay, fandt selv en løsning på tabulator/mellemrum problemet. Brugte ' ' (alt+0160) istedet for ' ' (normalt mellemrum).

Hvor svært er det at få den til at hente overskrifter? Ved godt at jeg er lidt krævende lige nu....

.txt filen er opbygget sådan:

Overskrift1
-indhold1
-indhold2
-indhold3

Overskrift2
-indhold1
-indhold2
-indhold3

Osv...

EDIT: Kan overskrifterne gøres fede? Altså < strong></strong >, ved ikke lige hvad der ser bedst ud..


#13
foo
 
Elitebruger
Tilføjet:
05-08-2005 19:55:21
Svar/Indlæg:
1685/240
altså den måde asp henter indhold fra en tekst fil er ukritik, dvs man ka n ikke lave det helt dynamisk, medmindre man kender de eksagte linier i filen... en måde man måske kunne gøre det, var ved at opbygge txt filen lidt som en ini fil...

[overskrift1]
-indhold
-indhold
-indhold

[overskrift2]
-indhold
-indhold
-indhold

Med en kode der så ser nogenlunde således ud (igen er den ikke testet) kan man måske hente det ud.

txt = f.readline
If Left(txt,1) = "[" Then 'tjekker om første tegn er [, hvis ja må det være en oversrift
Do Until txt = "" 'gør indtil der mødes en tom linie
Response.Write(txt & "
")
txt = f.readline
Loop
End If

dette skal selvfølgelig sættes ind i den eksisterende If sætning

som sagt det er ikke testet...



#14
foo
 
Elitebruger
Tilføjet:
05-08-2005 20:07:08
Svar/Indlæg:
1685/240
nej koden herover var ikke helt færdig, men har lige stykket noget sammen der virker - ligger samme sted som det gjorde før, det skal lige siges at der overhovedet slet ikke er lavet noget formatering, men det er det mindste problem...



#15
HAM
 
Overclocker
Tilføjet:
05-08-2005 20:48:17
Svar/Indlæg:
47/9
Hmm.. Nu virker den slet ikke..

<%@LANGUAGE="VBSCRIPT" CODEPAGE="1252"%>
<% Response.Buffer = True %>
<% Session.LCID = 1030 %>


Test





<%
Dim fso, f, filespec
Set fso = CreateObject("Scripting.FileSystemObject")
filespec = Server.Mappath("LISTE.txt")
Set f = fso.OpenTextFile(filespec,1)
Do While not f.AtEndOfStream
txt = f.Readline
If Instr(1, txt, "NAVN") <> 0 Then

If Left(txt,1) = "[" then
Do Until txt = ""
Response.Write(txt & "
")
If f.AtEndOfStream <> True Then
txt = f.readline
Else
Exit Do
End If
Loop

If f.AtEndOfStream = True Then
Exit Do
End If

End If
End if
Loop

f.Close
set fso = nothing
%>




Er der noget jeg har gjort forkert?
Har selvfølgelig rettet lidt i den, så den passer til det jeg skal bruge den til.



#16
HAM
 
Overclocker
Tilføjet:
05-08-2005 20:56:23
Svar/Indlæg:
47/9
Den første del (hvor den finder navnene) virker fint, det er efter at den del med overskrifter er kommet på at det ikke virker.



#17
foo
 
Elitebruger
Tilføjet:
05-08-2005 21:00:50
Svar/Indlæg:
1685/240
hmmm det virkede uden problemer ved mig, den søger kun i overskrifterne nu jo, det er du godt klar over ikke?

har du syntaks i din txt rigtig? den skal jo være bygget op som en ini hvor alle overskrifter står inde i brackets [], og der skal ALTID være en blank linie mellem overskrifterne



#18
HAM
 
Overclocker
Tilføjet:
05-08-2005 21:02:50
Svar/Indlæg:
47/9
Øhh... nej...
Men den finder stadig ikke noget.