Seite 2 von 3

Verfasst: 05.09.2007 00:15
von Kiffi
Da tippt man sich die Fingerkuppen fusselig und versucht einen Anfänger
behutsam mit der Materie vertraut zu machen und dann kommt der schnelle
Nic daher und funkt mir mit seinem Fix-und-fertig-Code dazwischen. Grrr!

Jetzt ist's Essig mit meinem pädagogisch wertvollen Auftrag. [buhä!]

;-)

Grüße ... Kiffi

Verfasst: 05.09.2007 00:22
von Kaeru Gaman
ja, find ich auch ein bißchen schade.
ich verstehe Nic, es ist wirklich schwierig bis unmöglich,
den code nicht zu posten, den man sich grad aus den fingern gesaugt hat,
weil man von dem thema gefesselt wurde.
und ich find's wirklich toll, wieviel mühe sich Kiffi gemacht hat,
sein "pädagogisches" Posting zu formulieren...

....nuja.. mal sehen, was bei raus kommt.

wenn Zerosurf es "drauf hat", wird er beides aufmerksam durcharbeiten.

Verfasst: 05.09.2007 00:28
von Zerosurf
ich bin grad beim durchackern und hab auch schon ein paar fehler gefunden - der code gehört sicher noch einmal überholt, aber heute werd ich nicht mehr viel tun.

Vielen dank und bis bald!

Zerosurf

Verfasst: 05.09.2007 00:59
von NicTheQuick
Na also, dann sind also noch Fehler drin. Die kann er dann ja selbst lösen. <)

Verfasst: 05.09.2007 09:10
von Kiffi
NicTheQuick hat geschrieben:Na also, dann sind also noch Fehler drin.
... die Du natürlich extra eingebaut hast, um zu kontrollieren, ob Zerosurf
auch richtig aufpasst, gell? ;-)

Grüße ... Kiffi

Verfasst: 08.09.2007 21:38
von Zerosurf
OK - hier der korregierte Code:

Code: Alles auswählen

EnableExplicit

Define a.l, b.l, link.s, open.s, text.s, line.s, save.s, s.s

open = OpenFileRequester("Datei auswählen", "", "Text-Dateien (*.txt,*.nfo,*.log)|*.txt;*.nfo;*.log", 0)

If ReadFile(0, open)
  Repeat
    line = LCase(ReadString(0))
    a = 1 ;Position, ab der wir in der Zeile suchen
    Repeat
      a = FindString(LCase(line), "http://", a) ;Ab Position 'a' in 'line' nach "http://" suchen
      If a  ;Wenn etwas gefunden wurde
        b = FindString(line, " ", a) ;Suche das nächste Leerzeichen ab 'a' in 'line'
        If b = 0 : b = Len(line) + 1: EndIf ;Wenn kein Leerzeichen vorhanden, dann nimm die Länge des Strings als Ende der URL
        link = Mid(line, a, b - a)  ;Schneide den gefundenen Link heraus
        s = "<a href=" + Chr(34) + link + Chr(34) + ">" + link + "</a>" ;Erstelle den HTML-Code für den Link
        line = ReplaceString(line, link, s) ;Ersetze die URL in 'link' durch den HTML-Code in 's'
        a + Len(s) - 1 ;Addiere zu 'a' die Länge von 's' um weitere Links zu finden
      EndIf
    Until a = 0 ;Wenn kein "http://" gefunden wurde, breche die Suche ab...
    text + line + Chr(13) ;...und füge das Ergebnis zum Gesamttext in 'text' hinzu.
  Until Eof(0)
  CloseFile(0)
Else
  MessageRequester("Link2Url", "Abruch: Datei konnte nicht geöffnet werden")
  End
EndIf

save = SaveFileRequester("Speichern unter...", "", "HTML Dokument (*.html,*.htm,*.shtml)|*.html;*.htm;*.shtml", 0)

If CreateFile(0, save)
  WriteString(0, text)
  CloseFile(0)
  MessageRequester("Link2Url", "Datei erfolreich erstellt!")
Else
  MessageRequester("Link2Url", "Abruch: Datei konnte nicht erstellt werden")
EndIf
End
Aber wie füge ich jetzt noch andere "Such- und Ersetz" - Begriffe ein, wie z.B: "ftp://" oder "mailto:" oder auch nur "www."?

Verfasst: 08.09.2007 21:46
von Kiffi
Zerosurf hat geschrieben:Aber wie füge ich jetzt noch andere "Such- und Ersetz" - Begriffe ein, wie z.B: "ftp://" oder "mailto:" oder auch nur "www."?
wir sind zwar hier im Anfängerforum, aber das heißt nicht, dass man
automatisch das selbstständige Denken einstellen muss.

Grüße ... Kiffi

Verfasst: 08.09.2007 22:04
von Zerosurf
Vielen Dank Kiffi!

Das hilft mir sehr weiter!

Verfasst: 08.09.2007 22:12
von Kiffi
Zerosurf hat geschrieben:Vielen Dank Kiffi!
gern geschehen! 8)

Im Ernst: Alleine in diesem Thread stehen alle Information, die Du benötigst,
um Dein Problem zu lösen.

Wenn Du nun noch erwartest, dass Du wieder einen Code auf dem
Silbertablett serviert bekommst, den Du dann erneut verwendest, ohne ihn
zu verstehen, würde ich mir an Deiner Stelle mal Gedanken darüber machen,
ob Programmieren das richtige Hobby für Dich ist.

Verfasst: 08.09.2007 22:41
von AndyX
Zerosurf hat geschrieben:Aber wie füge ich jetzt noch andere "Such- und Ersetz" - Begriffe ein, wie z.B: "ftp://" oder "mailto:" oder auch nur "www."?
Na einfach bei FindString() nen anderen Such-String, z.B. "www." angeben und evt. bei ReplaceString() anders verarbeiten :wink: