if string vorhanden then ... else

Anfängerfragen zum Programmieren mit PureBasic.
Benutzeravatar
Kiffi
Beiträge: 10714
Registriert: 08.09.2004 08:21
Wohnort: Amphibios 9

Beitrag 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
a²+b²=mc²
Kaeru Gaman
Beiträge: 17389
Registriert: 10.11.2004 03:22

Beitrag 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.
Der Narr denkt er sei ein weiser Mann.
Der Weise weiß, dass er ein Narr ist.
Benutzeravatar
Zerosurf
Beiträge: 131
Registriert: 11.10.2005 15:46

Beitrag 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
PureBasic 6.00 | Windows 10 pro (x64)
Benutzeravatar
NicTheQuick
Ein Admin
Beiträge: 8809
Registriert: 29.08.2004 20:20
Computerausstattung: Ryzen 7 5800X, 64 GB DDR4-3200
Ubuntu 24.04.2 LTS
GeForce RTX 3080 Ti
Wohnort: Saarbrücken

Beitrag von NicTheQuick »

Na also, dann sind also noch Fehler drin. Die kann er dann ja selbst lösen. <)
Benutzeravatar
Kiffi
Beiträge: 10714
Registriert: 08.09.2004 08:21
Wohnort: Amphibios 9

Beitrag 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
a²+b²=mc²
Benutzeravatar
Zerosurf
Beiträge: 131
Registriert: 11.10.2005 15:46

Beitrag 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."?
PureBasic 6.00 | Windows 10 pro (x64)
Benutzeravatar
Kiffi
Beiträge: 10714
Registriert: 08.09.2004 08:21
Wohnort: Amphibios 9

Beitrag 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
a²+b²=mc²
Benutzeravatar
Zerosurf
Beiträge: 131
Registriert: 11.10.2005 15:46

Beitrag von Zerosurf »

Vielen Dank Kiffi!

Das hilft mir sehr weiter!
PureBasic 6.00 | Windows 10 pro (x64)
Benutzeravatar
Kiffi
Beiträge: 10714
Registriert: 08.09.2004 08:21
Wohnort: Amphibios 9

Beitrag 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.
a²+b²=mc²
Benutzeravatar
AndyX
Beiträge: 1272
Registriert: 17.12.2004 20:10
Wohnort: Niederösterreich
Kontaktdaten:

Beitrag 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:
Antworten