PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : String mit Punkt nach Variable



Andree-HB
17.02.2006, 18:06
ähmm, wie kann ich aus `nem String "5305.9338" eine Variable mit Inhalt "53.059338" machen

bei
a = "5305.9338"
b= Val(a)

kommt B = 5305 heraus, was mache ich mit dem Rest nach dem Punkt, bzw. wie komme ich da ran...?

PicNick
17.02.2006, 18:26
Dim Ss As double
Dim Strg As String * 20
Strg = "5305.9338"
Ss = Val(strg)

du kannst ja noch durch 100 dividieren , dann hast du 53.059338

Kommst du mit dem durch ?

*g* auf das muß man erstmal kommen, gelle ? *g*

Andree-HB
17.02.2006, 23:24
...wie schon öfter bist Du mal wieder meine Rettung !

Aber sage mir bitte mal, wo soetwas steht !!! ;-)

Ratber
17.02.2006, 23:34
In der Hilfe und im Handbuch zu Bascom.
(RTFM wollte ich jetzt nicht sagen :wink: )

Andree-HB
18.02.2006, 07:50
...jetzt mal ehrlich - die Hilfe zu "double" in Bascom eröffnet sich mir nicht als Lösung meines "Problemes"...oder hat Dein geschultes Gremlin-Auge schon eine ganz andere Sichtweise ? :-)

oe9vfj
18.02.2006, 09:34
Aus Deinem Beispiel im ersten Post ist nicht ersichtlich, wie Du b gedimmt hast, d. h. welcher Datentyp Du b zugewiesen hast.
Grundsätzlich kann man zwischen Ganzzahlen, das sind Zahlen ohne Nach-Kommastellen (BYTE, WORD, INTEGER, LONG) und Gleitkommazahlen , das sind eigentliche Kommazahlen (SINGLE, DOUBLE) unterscheiden.
Die verschiedenen Datentypen unterscheiden sich durch ihren Wertebereich und bei den Ganzzahlen auch noch dahin, ob sie auch negative Werte repräsentieren können. Die entsprechenden Angaben dazu findest Du in der BASCOM-Hilfe unter http://avrhelp.mcselec.com/Language_Fundamentals.html unter der Überschrift: Elementary Data Types

DOUBLE ist vielleicht für dein Projekt übers Ziel geschossen. Prüf mal, ob du mit SINGLE das Auslangen findest, das spart SRAM, FLASH und Ausführungszeit.

PicNick
18.02.2006, 16:35
Bei single wird die konkrete Zahl gerundet. WIe man es halt braucht.
Ging' ja auch mehr ums prinzip.
bei Val (string) kommt es natürlich auf die Zielvariable an.
Wenn einer nix weiß, wie ich, probiert er halt einfach alles aus, was irgendwie nach dezimalpunkt riecht.

Ratber
18.02.2006, 23:13
...jetzt mal ehrlich - die Hilfe zu "double" in Bascom eröffnet sich mir nicht als Lösung meines "Problemes"...oder hat Dein geschultes Gremlin-Auge schon eine ganz andere Sichtweise ? :-)


Ja wenn du mundfertige bebilderte Lösungen willst dann wirst du wohl in den allermeisten Handbüchern nicht fündig werden.

Aus gutem Grund empfehle ich jedem einfach mal die Hilfe/Handbuch durchzuschmökern und einiges auszuprobieren damit man ein Gefühl dafür bekommt.
Schon alleine deswegen weil es für viele Grundfunktionen gleich mehrere Möglichkeiten gibt (zb. Für Schleifen Do/Loop mit und ohne Bedingung,While/Wend,For/Next plus Exit usw.)

Es reicht also nicht nen supergeiles highendoszilloskop mit umfsngreicherm Zubehöhr (Tastköpfe Kallibrierhilfe usw.) zu haben.
Wenn man nicht weiß wie man damit umgeht dann ist das absolut Wertlos.


Wenn du meinst ich rede nur so daher...........ich hab das genausos gemacht und ich lerne noch Heute da die Kombinationsmöglichkeiten fast unendlich sind und immerwieder ein neuer Kniff zu lernen/Herausfinden ist.

Ich will dir also nichts böses sondern nur eine mögliche vorgehensweise anbieten.

Andree-HB
18.02.2006, 23:51
Die Schwierigkeit bei mir ist softwareseitig oft, dass ich gar nicht genau weiss, was das genaue Problem ist, kann daher die eventuelle Lösung also gar nicht oder nur sehr schwer einkreisen. Wenn man das genaue Problem benennen kann, dann kann man danach zielorientiert suchen und ist der Lösung dadurch recht nahe.

Aber ich weiss genau, was Du meinst - Ich habe zum Beispiel bei der Elektronik wenig Probleme, da ist für mich alles sehr logisch, kann über Jahre erlernte Grundlagen gut kombinieren und kenne viele Quellen, derer ich mich bedienen kann, und in denen gezielt nach Stichpunkten suchen kann. Ich bin da auch bisher fast immer zu für mich zufriedenstellenden Lösungen gekommen.

So blöde es klingt - Software "behindert" mich derzeit immer noch sehr in der Umsetzung meine Ideen, da ich sie einfach (noch) nicht gut beherrsche....weiss aber natürlich, dass gerade sie meistens den Schlüssel zum Erfolg bildet und stelle mich der Herausforderung, obwohl ich schon so manches Mal echt hätte kotzen können... ;-)

Da ich aber weiss, dass auch hier Alle nur mit Wasser kochen, gehe ich da doch relativ gelassen dran...ich bin auf der Arbeit mit so vielen Neuerungen und Aufgaben konfontiert und habe bisher dort auch immer alles gut gemeistert bekommen....man muss halt nur Zeit und Biss investieren.

Ausserdem finde ich es hier im Forum wirklich total klasse, wie einem hier wirklich sehr qualifiziert und zeitnah geholfen wird und wieviele Menschen mit Erfahrung und Wissen bereit sind, dieses auch zu teilen.

Ratber
19.02.2006, 10:22
Ja,siehste.

Bei der Elektronik weißt du wie du vorgehen mußt und wo du die nötigen Informationen bekommst.

Bei der Software ist das nicht anders.
Man muß sich nur die Informationen zusammensuchen und natürlich etwas Lesen und einwenig experimentierfreudig sein (Experimente sind in Software Kostenlos)


Was die Programierung angeht so mach es doch so wie viele andere auch.
Zerleg dein Programm oder deine Wünsche in Pseudocode.
also ganz dooof wie Kleinkind:

"Wenn ich die Taste drücke dann soll das und das passieren"
Das zerlegst du immer weiter in einzelschritte.
Dann suchst du nach Fiunktionen die die Eintzelschritte erfüllen können.
Wenn du auf ein Problem stößts dan ebenfalls in seine Teilbereiche zerlegen und das Grundlegende Problem rausfinden und abstellen.

Das funktioniert recht gut.

Die Programme mögen anfangs etwas chaotisch aussehen aber mit der Zeit kommt da schon ne Struktur rein weil man schnell lernt das die eine oder andere Methode besser ist (Weniger Rechenzeit,Speicher usw.).



Ich habe meinen Lebtag noch kein komplettes Programm für Windows geschrieben (Unter Dos war das ja kein Akt) und nun stehe ich eben davor und brauche für eine Schaltung ein recht Simpels Programm zu Konfiguration über die Serielle.

Mit C und C++ komm ich nicht klar und auch VB hat für mich einen viel zu großen Wasserkopf und obendrein schmeckt mir das mit der Laufzeitbibliothek überhaupt nicht.
Ich will ein Programm aus einen Guss und keinen halben Interpreter.
Delphi ist auch nicht so meine Wellenlänge da für meinen Geschmack zuviel Verwaltungsaufwand.
Bis ich da "Hello World" Geschrieben habe hab ich 2 A4 Seiten Formulare verknüpft.

Ja,und nun hab ich alternativen abgeklappert und bin bei Purebasic gelandet.
Derzeit Arbeite ich mich etwas ein.
Einfache Programme mit ein/Ausgaben und der Verarbeitung sind überhaupt kein akt und sehr leicht zu erstellen.(Auch die UI ist leicht zusammenklickbar)
Genau das was ich suchte.
Allerdings ist das Ansprechen der Seriellen von Hause aus nicht möglich.
Da habe ich eine Lib. gefunden in die ich gerade eintauche um zu meinem Ziel zu gelangen.
Fragen hab ich dazu noch nicht stellen müssen aber eine oder Zwei werden es bestimmt zur Systemintegration (Windows verwaltet ja die Zugriffe auf die Schnittstellen)


Als ich mit Bascom angefangen habe da ging es los mit "Wie Definiere ich einen Port als Ein-/Ausgang und wie Schalte ich damit bzw. wie Frage ich ihn ab (Einzelne Bits oder ganze Bytes.Wie geht das mit dem Pullup ?)
Dann das gleiche für die andere Hardware.
Takt (Intern,Extern Quarz,Resonator usw.)
AD-Wandler,Timer,UART bzw. USART und die Unterschiede.
usw.

Einfach mal rumprobieren um ein Gefühl für die Zusammenhänge zu bekommen.
Irgendwann kommt man auch an die Tinys und merkt das die kaum oder nur Teilweise unterstützt werden (Ein Eintrag im Handbuch mit Modelleignung wäre recht praktisch) also lernt man schnell das ganze über die Register zu bedienen.
Das ist zwar etwas unbequemer aber solange es klappt ist das egal.

In der Elektronik macht man sich über eine nneuen Chip schlau indem man sein Datenblatt und eventuell noch einige Applicationsnotes studiert.

Bei Bascom ist daß das Handbuch,die Hilfe,Die Beispiele usw.


Wie ich im GPS-Topic schon sagte hab ich über GPS nur allgemeines Wissen (Wat is dat,wie funktioniert es prinzipell,Wat für Hardware gibbet und wie komme ich an die Daten).
Aber wenn ich mehr wissen will weil ich zb. wie du plötzlich interesse habe was eigenes damit zu machen dann suche ich mir die nötigen Informationen zusammen so wie ich es immer mache.
Das Internet ist riesig und im Grunde bekommt man fast jede Info solange man auch danach sucht.

Es geht sich also nicht so sehr darum das du Bascom und seine Macken perfekt verstehst und auswendig lernst sondern nur darum sich einen Stil in Sachen Informationsbeschaffung zuzulegen.
Ich kenne auch nicht alle Befehle und Register auswendig und muß mir das bei bedarf selber zusammenlesen und ich hab bestimmt nicht die ideale Methode dafür aber ich habe erstmal eine die ich entwickeln kann.


Das wollte ich mit "In der Hilfe und im Handbuch zu Bascom. " ausdrücken.


So,Ende des Romans :D

Andree-HB
19.02.2006, 11:08
Mit genau Deiner beschriebenen Methode bin ich ja schon zu recht guten Ergebnissen gekommen und habe viele Dinge aus der Hilfe gezogen oder mir Codeschnipsel "zusammengeklaut" einfach mal ausprobiert und kombiniert - Servoansteuerung, LCD, Schrittmotoransteuerung, Infrarot, UART, I2C, Analogabfragen, Subroutinen, Timer, Interrupts, usw....da kommt man ja wirklich ohne grössere Probleme "rein"....nur wenn es um Feinheiten oder Optimierungen geht, dann hört´s aus mangelndem Verständnis für die Problematik ganz schnell auf...

...aber im Grossen und Ganzen bin ich selber mit meinen Fortschritten und Ergebnissen sehr zufrieden. Vor etwas über einem Jahr hatte ich noch keinerlei Ahnung von Microcontrollern und (deren) Programmierung. und das Interesse ist noch nicht geschwunden, im Gegenteil.

Mal schauen wo ich nächstes Jahr bin ! :-)