Problem mit FindString

Anfängerfragen zum Programmieren mit PureBasic.
Benutzeravatar
zigapeda
Beiträge: 1753
Registriert: 06.03.2005 17:22
Wohnort: Kaufbeuren
Kontaktdaten:

Problem mit FindString

Beitrag von zigapeda »

Hallo suche einen string in einem anderen String. das es den string gibt weiß ich ziemlich sicher aber der computer kann ihn nicht finden. Woran kann das liegen?
kluger Mann + kluge Frau = Romanze | dummer Mann + dumme Frau = Schwangerschaft
kluger Mann + dumme Frau = Affäre | dummer Mann + kluge Frau = Shopping <)
Benutzeravatar
Kiffi
Beiträge: 10714
Registriert: 08.09.2004 08:21
Wohnort: Amphibios 9

Re: Problem mit FindString

Beitrag von Kiffi »

Code?
Benutzeravatar
zigapeda
Beiträge: 1753
Registriert: 06.03.2005 17:22
Wohnort: Kaufbeuren
Kontaktdaten:

Beitrag von zigapeda »

Code: Alles auswählen

daten$ = "Hallo2ollaH"
pos1 = FindString(daten$,"Hallo",0) + 5
pos2 = FindString(daten$,"ollaH",0)
a = Val(Mid(daten$,pos1,pos2 - pos1))
Debug a
Der code geht einwandfrei, wenn er alleine steht aber nicht wenn er in meinem Programm steht und das einzigste was ich machen will ist ja des nur das danach noch code kommt. Hat das vieleicht was mit dem öffnen von Fenstern zu tun?
kluger Mann + kluge Frau = Romanze | dummer Mann + dumme Frau = Schwangerschaft
kluger Mann + dumme Frau = Affäre | dummer Mann + kluge Frau = Shopping <)
Benutzeravatar
Deeem2031
Beiträge: 1232
Registriert: 29.08.2004 00:16
Wohnort: Vorm Computer
Kontaktdaten:

Beitrag von Deeem2031 »

1. heißt es "einzige" und nicht "einzigste"
2. musst du uns schon den ganzen Code zeigen, der Fehler wird wohl kaum daran liegen, wenn der Code alleine funktioniert.
Bild
[url=irc://irc.freenode.org/##purebasic.de]irc://irc.freenode.org/##purebasic.de[/url]
Benutzeravatar
ts-soft
Beiträge: 22292
Registriert: 08.09.2004 00:57
Computerausstattung: Mainboard: MSI 970A-G43
CPU: AMD FX-6300 Six-Core Processor
GraKa: GeForce GTX 750 Ti, 2 GB
Memory: 16 GB DDR3-1600 - Dual Channel
Wohnort: Berlin

Beitrag von ts-soft »

zigapeda hat geschrieben: Der code geht einwandfrei, wenn er alleine steht aber nicht wenn er in meinem Programm steht und das einzigste was ich machen will ist ja des nur das danach noch code kommt. Hat das vieleicht was mit dem öffnen von Fenstern zu tun?
Nein, mit dem öffnen eines Fensters hat es nichts zu tun, weil:

Code: Alles auswählen

daten$ = "Hallo2ollaH"
pos1 = FindString(daten$,"Hallo",0) + 5
pos2 = FindString(daten$,"ollaH",0)
a = Val(Mid(daten$,pos1,pos2 - pos1))
Debug a
If OpenWindow(0, 100, 100, 200, 200,  #PB_Window_SystemMenu, "Testfenster")
  Repeat : Until WaitWindowEvent() = #PB_Event_CloseWindow
EndIf
funktioniert.
PureBasic 5.73 LTS | SpiderBasic 2.30 | Windows 10 Pro (x64) | Linux Mint 20.1 (x64)
Nutella hat nur sehr wenig Vitamine. Deswegen muss man davon relativ viel essen.
Bild
Benutzeravatar
Kiffi
Beiträge: 10714
Registriert: 08.09.2004 08:21
Wohnort: Amphibios 9

Beitrag von Kiffi »

zigapeda hat geschrieben:

Code: Alles auswählen

daten$ = "Hallo2ollaH"
pos1 = FindString(daten$,"Hallo",0) + 5
pos2 = FindString(daten$,"ollaH",0)
a = Val(Mid(daten$,pos1,pos2 - pos1))
Debug a
Der code geht einwandfrei, wenn er alleine steht aber nicht wenn er in
meinem Programm steht
ich glaube nicht, dass der Code in Deinem Programm genauso aussieht,
wie Du ihn hier gepostet hast, denn sonst würde er nicht nur 'standalone',
sondern auch in Deinem Programm funktionieren, weil es kein 'äusseren'
Einflüsse geben kann, die auf Deinen Code negativ einwirken.

Poste mal bitte den Original-Ausschnitt. Meine Vermutung geht dahin, dass
entweder daten$ oder der jeweils 2. Parameter bei FindString() (hier bei Dir
durch die konstanten Strings "Hallo" und "ollaH" ersetzt) den falschen Inhalt
trägt.

Grüße ... Kiffi
Benutzeravatar
zigapeda
Beiträge: 1753
Registriert: 06.03.2005 17:22
Wohnort: Kaufbeuren
Kontaktdaten:

Beitrag von zigapeda »

ich sag euch wie die befehle abgearbeitet werden:
1. Öffnen von 2 Fenstern und erstellen der Gadgetlists
2. variablen 1 stringfeld wird angelegt und eben die daten$ werden festgelegt
3. Proceduren (werden nicht ausgeführt aber kommen hald so in der reienfolge
4. Die Procedure wird aufgerufen und hat am anfang folgenden code:

Code: Alles auswählen

Procedure countprofil()
  pos1 = FindString(daten$,"Hallo",0) + 5
  pos2 = FindString(daten$,"ollaH",0)
  a = Val(Mid(daten$,pos1,pos2 - pos1))
  Debug a
und mit dem code danach hat es ja nix zu tun weil genau an dieser stelle wird ja a gedebugt.

Hab noch eine frage: Wenn ich die Prozedur mit countprofil() starte und danach die hauptschleife anfängt wird ja erst die prozedur abgearbeitet und dann im eigentlichen code weitergemacht oder?
kluger Mann + kluge Frau = Romanze | dummer Mann + dumme Frau = Schwangerschaft
kluger Mann + dumme Frau = Affäre | dummer Mann + kluge Frau = Shopping <)
Antworten