Mid$ Anweisung / Suchfunktion im Board

Für allgemeine Fragen zur Programmierung mit PureBasic.
Benutzeravatar
Kiffi
Beiträge: 10711
Registriert: 08.09.2004 08:21
Wohnort: Amphibios 9

Re: Mid$ Anweisung / Suchfunktion im Board

Beitrag von Kiffi »

Daffy0815 hat geschrieben:Daher finde ich die Äußerung "gedöns mit der seriellen Schnittstelle" schlicht kontraproduktiv.
Deine Meinung. Wenn Du Codes postest, die nur ein
geringer Teil der Leserschaft ausführen kann (eben
wegen der Schnittstelle), musst Du damit rechnen,
dass Du die von Dir erhoffte Hilfe nicht bekommst.

Grüße ... Kiffi
a²+b²=mc²
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

Re: Mid$ Anweisung / Suchfunktion im Board

Beitrag von ts-soft »

Daffy0815 hat geschrieben:Das die hier vielfach vorgestellten "String-kleinhack und String-zusammenbind"-Lösungen alle irgendwie funktionieren ist völlig klar nur haben die alle das gleiche Problem - Sie sind alle sehr langsam und daher in meinem Fall nicht verwendbar.
Bis auf die Lösung von BSP sind alle Lösungen sehr schnell. Vielleicht ist Dein PC einfach zu langsam, das wäre dann die
einzig möglich Erklärung für Deine Aussage.

RS232 hab ich nicht, bin hier raus, regt mich immer auf die Ente.
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
Daffy0815
Beiträge: 390
Registriert: 15.06.2005 00:44
Wohnort: 65719 Hofheim
Kontaktdaten:

Re: Mid$ Anweisung / Suchfunktion im Board

Beitrag von Daffy0815 »

@Kiffi & ts-soft

Die Ausstattung der PC's der Nutzer des Forums ist mir logischerweise nicht bekannt.

@ts-soft
Die Kommunikation zwischen dem PC und dem Sub-System via UART ist Rechenzeitmäßig nur ein winziger Bruchteil des gesamten Programms daher ist das "Stringgebastel" einfach zu langsam.
Ich habe es "live" mit 921 kBaud getestet und dabei gingen bei diesen Lösungen Zeichen verloren.

Gruß

Daffy
Wir sind LINUX
Widerstand ist zwecklos - Sie werden emuliert
Benutzeravatar
Daffy0815
Beiträge: 390
Registriert: 15.06.2005 00:44
Wohnort: 65719 Hofheim
Kontaktdaten:

Re: Mid$ Anweisung / Suchfunktion im Board

Beitrag von Daffy0815 »

@Stargate

Das muss ich mal testen ob das der Grund des Problems ist.
Leider ist mir der interne Aufbau eines Strings fester Länge in PureBasic nicht bekannt und daher ging ich davon aus, dass bedingt durch den Startwert der MID-Funktion die 0-Position eine andere Funktion hat als das erste Zeichen des Strings.

Was die Sysntax der MID$-Anweisung betrifft so habe ich die hier zwar schon durch einen Auszug aus dem Handbuch meines DS80C320-BASICS dokumentiert aber damit nicht der Eindruck aufkommt es handele sich hierbei um meine eigene "Erfindung" hier mal ein Beispiel aus POWERBASIC:

MID$(StringVar, Start& [, Count&]) = replacement
MID$(StringVar, Start& TO End& = replacement

Eigentlich gibt es diese Anweisung in so ziemlich jedem BASIC-Idiom außer PureBasic.

Gruß

Daffy
Wir sind LINUX
Widerstand ist zwecklos - Sie werden emuliert
Benutzeravatar
Kiffi
Beiträge: 10711
Registriert: 08.09.2004 08:21
Wohnort: Amphibios 9

Re: Mid$ Anweisung / Suchfunktion im Board

Beitrag von Kiffi »

Daffy0815 hat geschrieben:Die Ausstattung der PC's der Nutzer des Forums ist mir logischerweise nicht bekannt.
genau aus diesem Grund solltest Du Deine Codes so halten,
dass auch Leute ohne Schnittstelle ihn ausführen können.

Die Zeit, in der wir hier diskutieren, hättest Du prima dafür
verwenden können, die Schnittstelle softwaremäßig zu
simulieren. Aber mir scheint, dass Du lieber hier auf Deinen
Prinzipien herumreiten möchtest.

In diesem Sinne ... HüHott!
a²+b²=mc²
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

Re: Mid$ Anweisung / Suchfunktion im Board

Beitrag von ts-soft »

In PB gibt es die ja auch: Mid
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
matbal
Beiträge: 261
Registriert: 30.03.2011 20:53

Re: Mid$ Anweisung / Suchfunktion im Board

Beitrag von matbal »

STARGÅTE hat geschrieben:Zurück zum Ursprungsthema: Was ist eine Mid$-Anweisung ? Kannst du mal den Syntax zeigen?
In PowerBasic sind zwischen Function und Statement nur rechts und links vom "=" vertauscht. Es sieht aus, als würde man der Funktion einen Wert zuweisen.
Benutzeravatar
NicTheQuick
Ein Admin
Beiträge: 8807
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

Re: Mid$ Anweisung / Suchfunktion im Board

Beitrag von NicTheQuick »

ts-soft hat geschrieben:In PB gibt es die ja auch: Mid
Nein, du hast es nicht verstanden. In dem Fall wird der Funktion MID$ etwas zugewiesen, nämlich der String, der den mit Anfangsposition, Länge markierten String ersetzen soll. Es ist eigentlich nichts anderes als ReplaceString, bloß andersrum notiert.

Edit:
Hm... zu langsam. :D
Benutzeravatar
Daffy0815
Beiträge: 390
Registriert: 15.06.2005 00:44
Wohnort: 65719 Hofheim
Kontaktdaten:

Re: Mid$ Anweisung / Suchfunktion im Board

Beitrag von Daffy0815 »

@Kiffi

Das hat doch nichts mit "Prinzipien-herumreiten" zu tun!
Ohne serielle Schnittstelle gab es das Problem doch nicht daher die Beispiele mit serieller Schnittstelle.

@Matbal

Ich denke das hier ein Missverständnis vorliegt.
Einer der Unterschiede zwischen BASIC und z. B. C ist der, dass zwischen Anweisungen und Funktionen unterschieden wird.
Eine Anweisung übergibt nur Werte ohne etwas zurückzugeben.
Eine Funktion gibt immer einen Wert zurück.

Über den Sinn dieser Unterscheidung kann man sicherlich streiten aber es ist nun mal bei BASIC so definiert worden.
Im Falle der MID$-Anweisung macht dies meiner Meinung auch Sinn denn was sollte denn eine "FunKtion" deren Aufgabe es ist ein Zeichen in einer Zeichenkette auszutauschen bzw. zu überschreiben zurückgeben?

Gruß

Daffy



Gruß

Daffy
Wir sind LINUX
Widerstand ist zwecklos - Sie werden emuliert
Benutzeravatar
Daffy0815
Beiträge: 390
Registriert: 15.06.2005 00:44
Wohnort: 65719 Hofheim
Kontaktdaten:

Re: Mid$ Anweisung / Suchfunktion im Board

Beitrag von Daffy0815 »

@NickTheQuick

ReplaceString ist leider kein Ersatz für Mid$ denn hier werden bestimmte Zeichen gesucht und dann ersetzt.

String$ = ReplaceString(String$, SuchString$, ErsatzString$ [, Modus [, StartPosition]])

Dann müsste ReplaceString so etwas zulassen:

String$ = ReplaceString(String$, "#PB_EinZeichenVölligWurscht", ErsatzString$, #PB_String_InPlace, StartPosition)

Gruß

Daffy
Wir sind LINUX
Widerstand ist zwecklos - Sie werden emuliert
Gesperrt