PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : "Reload"funktion


DonkeyKong
08.11.2002, 22:16
hi! ich brauche dringend hilfe! (bin noch newbie)

ich habe ein script gebaut, was erfordert, das alle 5-10 sekunden dieses neu aufgerufen wird von mirc...es ist eine infodatenbank, in der man sachen abspeichert z.B. per "!info 1 heute 10 Uhr - tennis", wenn ich dann "!showinfo 1" mache, steht es zwar im bla.mrc file, aber es ist nicht abrufbar per "!showinfo 1"..erst wenn ich dann /load -rs bla.mrc mache, kann ich es per !showinfo 1 aufrufen...weiß jemand rat?


Blackflash
09.11.2002, 10:58
Hmm, das weiss ich auch nicht. Aber ich hätte alles mit dem Befehl set abgespeichert. Das würde dann in etwa so aussehen:

set %termin [ $+ [ $2 ] ] $3-

Und zum Abrufen würde es dann so aussehen:

msg $chan %termin [ $+ [ $2 ] ]



Naja, so hätte ich es jedenfalls gemacht.

Tribal
13.11.2002, 10:56
hmpf warum willst du das der das in nme mrc file speichert ? willst du den command selbst dort speichern, sodass du ihn dort aufrufst ? find ich vollkommen blödsinnig...

schreibe dir eine routine, die das nach dem !info in eine txt file schreibt und lies diese text datei immer wieder aus wenn jemand nen !show macht...

sieht dann so aus:


on *:text:!info*:#: {
write info.txt $2-
}

on *:text:!show*:#: {
var %AbfrageNummer $2
var %lines $lines(info.txt)
var %i 0
while (%i <= %lines) {
var %CurrentStream $read(info.txt,%i)
tokenize 32 %CurrentStream

if ($1 == %AbfrageNummer) {
msg $chan $2- | halt
}
inc %i
}
}

so
was macht das script ? wenn einer !info 1 blubb schreibt, speichert das script diesen text in einer text datei namens info.txt

wenn einer dann !show 1 schreibt, liest er das txt file ein und schaut nach ob das erste wort (Nummer) der ab zu fragenden nummer entspricht. falls ja, wird der text ohne nummer ausgegeben also in dem falle blubb. falls nicht macht er garnix...

man kann ja noch einbauen das er dann sagen soll das er nix gefunden hat... direkt unter

if ($1 == %AbfrageNummer) {
msg $chan $2- | halt
}

zum bleistift so:

if (%i == %lines) {
msg $chan Tut mir leid, aber ich fand nix...
}

so long

gencha
13.11.2002, 11:00
if ($1 == %AbfrageNummer) {
msg $chan $2- | halt
}


das zum thema überflüssige/unsinnige halt's :)

Tribal
13.11.2002, 11:03
hmm es reicht doch wenn da script die stelle gefunden hat und ausgibt, warum sollte er die while schleife noch weiter ausführen ?

find ich auf keinen fall unsinnig an der stelle ;)

Codeq
13.11.2002, 11:07
mööp

wenn er eh nicht alles ausgegeben haben willm dann macht eine while schleife die stur jede zeile überprüft überhaupt keinen sinn... das dauert jahre!!

nimm lieber einen gescheiten such algorithmus... quick oder heapsort ..
egal was du sagst, /halt's sind eine scheiss art zu programmieren und wenn du nicht möchtest das eine while schleife überflüssig lange läuft nach einem match, warum kümmerst du dich nicht schon um die überflüssigen durchläufe davor?

das kostet dich gar nichts wenn die letzten while durchgänge auchnoch abgeackert werden,.... ist ja schliesslich nur ein command dadrin der ausgeführt wird...

gencha
13.11.2002, 11:10
mit BREAK aus der schleife rausspringen
oder mit RETURN beenden