Seite 3 von 5

Re: Mid$ Anweisung / Suchfunktion im Board

Verfasst: 23.02.2012 12:11
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

Re: Mid$ Anweisung / Suchfunktion im Board

Verfasst: 23.02.2012 12:15
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.

Re: Mid$ Anweisung / Suchfunktion im Board

Verfasst: 23.02.2012 12:37
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

Re: Mid$ Anweisung / Suchfunktion im Board

Verfasst: 23.02.2012 12:45
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

Re: Mid$ Anweisung / Suchfunktion im Board

Verfasst: 23.02.2012 12:53
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!

Re: Mid$ Anweisung / Suchfunktion im Board

Verfasst: 23.02.2012 12:54
von ts-soft
In PB gibt es die ja auch: Mid

Re: Mid$ Anweisung / Suchfunktion im Board

Verfasst: 23.02.2012 12:58
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.

Re: Mid$ Anweisung / Suchfunktion im Board

Verfasst: 23.02.2012 12:59
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

Re: Mid$ Anweisung / Suchfunktion im Board

Verfasst: 23.02.2012 13:10
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

Re: Mid$ Anweisung / Suchfunktion im Board

Verfasst: 23.02.2012 13:20
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