Das deutsche QBasic- und FreeBASIC-Forum Foren-Übersicht Das deutsche QBasic- und FreeBASIC-Forum
Für euch erreichbar unter qb-forum.de, fb-forum.de und freebasic-forum.de!
 
FAQFAQ   SuchenSuchen   MitgliederlisteMitgliederliste   BenutzergruppenBenutzergruppen  RegistrierenRegistrieren
ProfilProfil   Einloggen, um private Nachrichten zu lesenEinloggen, um private Nachrichten zu lesen   LoginLogin
Zur Begleitseite des Forums / Chat / Impressum
Aktueller Forenpartner:

ASCII-Codes aus String-Array auslesen

 
Neues Thema eröffnen   Neue Antwort erstellen    Das deutsche QBasic- und FreeBASIC-Forum Foren-Übersicht -> Allgemeine Fragen zu QBasic.
Vorheriges Thema anzeigen :: Nächstes Thema anzeigen  
Autor Nachricht
chong



Anmeldungsdatum: 01.03.2006
Beiträge: 2

BeitragVerfasst am: 01.03.2006, 15:52    Titel: ASCII-Codes aus String-Array auslesen Antworten mit Zitat

Ich will ein Programm schreiben, bei dem man ein Wort eingibt und der Computer gibt es in ASCII-Code und Binär geschrieben wieder aus.
Damit will ich ein paar Kindern, die ich zurzeit betreue das binäre System näherbringen.
Ich hab schon ein Prog von Thomas Antoni, das bei einem Tastendruck denn ASCII-Code zurückgibt umgeschrieben, das jetzt auch der Binärwert angezeigt wird, aber ich kriegs nicht hin aus einem String die einzelnen Buchstaben nacheinander auszulesen und umzuwandeln.
Hab schon knapp 16 Jahre nicht mehr mit Basic gearbeitet.
HELP PLZ mit dem Kopf durch die Mauer wollen

Kann mir einer sagen was daran nicht stimmt

mid$(name$,i,1)=b$
n%=ASC(b$) FEHLER Unzulässiger Funktionsaufruf


Zuletzt bearbeitet von chong am 01.03.2006, 16:30, insgesamt einmal bearbeitet
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
jb



Anmeldungsdatum: 14.01.2005
Beiträge: 2010

BeitragVerfasst am: 01.03.2006, 15:57    Titel: Antworten mit Zitat

Wenn du den ASCII-Wert hast, kannst du mit AND jedes einzelne Bit abscannen.
Wenn das Bit 1 ist, dann schreibt das Programm eine 1, wenn das Bit 0 ist, logischwerweise eine 0 grinsen.
Code:

ASCIIWert = 65
FOR i = 0 TO 7 STEP 1
 IF ASCIIWert AND 2 ^ i THEN
  PRINT "1";
 ELSE
  PRINT "0";
 END IF
NEXT i
PRINT

Hab's nicht getestet, sollte aber klappen. lächeln

/edit: Hups, dein Problem ist ja ein ganz anderes... peinlich
Ein Zeichen kannst du mit MID$(NameDesStrings$, Position, 1) auslesen.
Somit sähe das obige Programm wiefolgt aus:
Code:

Test$ = "Ich trinke gerne Apfelsaft."
FOR count = 1 TO LEN(Text$) STEP 1
 ASCIIWert = ASC(MID$(Text$, count, 1))
 PRINT MID$(Text$, count, 1); " wird zu: ";
 FOR i = 0 TO 7 STEP 1
  IF ASCIIWert AND 2 ^ i THEN
   PRINT "1";
  ELSE
   PRINT "0";
  END IF
 NEXT i
 PRINT
NEXT count


Ebenfalls nicht getestet zwinkern

jb
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
chong



Anmeldungsdatum: 01.03.2006
Beiträge: 2

BeitragVerfasst am: 01.03.2006, 16:39    Titel: Antworten mit Zitat

THX für die schnelle Antwort
leider nist mein prob nicht das ascii nach binär wandeln, das hab ich schon zwar etwas komplizierter aber es funkt
aber ich krieg die ascii-werte nicht

Hier der komplette Code

cls
input "bitte gib deinen namen ein", name$
print "so sieht dein name für den computer aus:"
z= len(name$)
for i= 1 to z
mid$(name$,i,1)=b$
n%=asc(b$)

sorry fehler gefunden
man sollte schon drauf achten was man wo zuweist zwinkern


bei der letzten zeile gib der interpreter "ungültiger Funktionsaufruf" aus


Zuletzt bearbeitet von chong am 01.03.2006, 17:21, insgesamt einmal bearbeitet
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
otti



Anmeldungsdatum: 28.02.2005
Beiträge: 112
Wohnort: Wildberg

BeitragVerfasst am: 01.03.2006, 17:08    Titel: Antworten mit Zitat

kann es sein, dass du dass ascii zeichen als erstes in eine string variable schreiben musst?
also so
Code:

n$=asc(b$)
zahl%=val(n$)


(nicht getestet!)

grüße otti
_________________
Gute Musik lächeln
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen MSN Messenger
MisterD



Anmeldungsdatum: 10.09.2004
Beiträge: 3071
Wohnort: bei Darmstadt

BeitragVerfasst am: 01.03.2006, 21:03    Titel: Antworten mit Zitat

nein, definitiv nicht.

Ungültiger funktionsaufruf bei dem befehl kann nur heißen, dass b$="" ist. Folglich hast du vermutlich ein zeichen mehr auslesen wollen als da ist, dann gibt mid$ dir nen leeren string.

Code:
for n=1 to len(stringvar$)
print asc(mid$(stringvar$,n,1))
next n

sollte gehen.
_________________
"It is practically impossible to teach good programming to students that have had a prior exposure to BASIC: as potential programmers they are mentally mutilated beyond hope of regeneration."
Edsger W. Dijkstra
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
jb



Anmeldungsdatum: 14.01.2005
Beiträge: 2010

BeitragVerfasst am: 01.03.2006, 22:03    Titel: Antworten mit Zitat

Er hat's doch schon gesagt: Die markierte Zeile muss einfach umgedreht werden lächeln

jb
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
MisterD



Anmeldungsdatum: 10.09.2004
Beiträge: 3071
Wohnort: bei Darmstadt

BeitragVerfasst am: 02.03.2006, 00:35    Titel: Antworten mit Zitat

was aber den danach noch existenten ungültigen funktionsaufruf nicht beseitigt hat.. der sollte bei meinem nicht mehr da sein..
_________________
"It is practically impossible to teach good programming to students that have had a prior exposure to BASIC: as potential programmers they are mentally mutilated beyond hope of regeneration."
Edsger W. Dijkstra
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
pinkpanther



Anmeldungsdatum: 28.05.2005
Beiträge: 79
Wohnort: Wien

BeitragVerfasst am: 02.03.2006, 02:43    Titel: Antworten mit Zitat

Version chong:
Code:
z% = len(name$)
for i% = 1 to z%
  b$ = mid$(name$,i%,1)  '(korrigiert)
  n% =asc(b$)
  print n%
next

Version MisterD:
Code:
for n% = 1 to len(stringvar$)
  print asc(mid$(stringvar$, n%, 1))
next n%

@MisterD:
Und worin unterscheiden sich die beiden Varianten?
Ist schon spät, vielleicht blick ich nicht mehr durch...
_________________
lG
pinkpanther lächeln
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden
MisterD



Anmeldungsdatum: 10.09.2004
Beiträge: 3071
Wohnort: bei Darmstadt

BeitragVerfasst am: 02.03.2006, 14:27    Titel: Antworten mit Zitat

unterschied ist, das meine weniger variablen braucht und somit weniger speicher und schneller ist (wenn mans interpretiert, n guter compiler reduziert die längere version auf meine variante wenn die variablen sonst nirgends benutzt werden..)
_________________
"It is practically impossible to teach good programming to students that have had a prior exposure to BASIC: as potential programmers they are mentally mutilated beyond hope of regeneration."
Edsger W. Dijkstra
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
pinkpanther



Anmeldungsdatum: 28.05.2005
Beiträge: 79
Wohnort: Wien

BeitragVerfasst am: 02.03.2006, 23:49    Titel: Antworten mit Zitat

Wer bitte lässt seine fertig entwickelten Programme noch durch einen Interpreter rattern? Und während der Entwicklung eines Programms sollte Geschwindigkeit noch nicht das entscheidende Thema sein...

Außerdem: Wenn ich nun b$, n% und z% mehrfach im aktuellen Gültigkeitsbereich einsetze, um Zwischenergebnisse komplexer Ausdrücke abzulegen, spare ich auch Speicherplatz und habe gleichzeitig den Vorteil, dass meine Überlegungen stets klar und meine Berechnungen nachvollziehbar bleiben.

Und was die Geschwindigkeit betrifft:
Meinst du nicht, dass der Compiler komplexe Ausdrücke wie
Code:
asc(mid$(stringvar$, n%, 1))

auf mehrere Schritte verteilt ermittelt, wobei er (manche) Zwischenergebnisse im Speicher ablegen muss? Worin liegt dann der enorme Geschwindigkeitsvorteil?
_________________
lG
pinkpanther lächeln
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden
Beiträge der letzten Zeit anzeigen:   
Neues Thema eröffnen   Neue Antwort erstellen    Das deutsche QBasic- und FreeBASIC-Forum Foren-Übersicht -> Allgemeine Fragen zu QBasic. Alle Zeiten sind GMT + 1 Stunde
Seite 1 von 1

 
Gehe zu:  
Du kannst keine Beiträge in dieses Forum schreiben.
Du kannst auf Beiträge in diesem Forum nicht antworten.
Du kannst deine Beiträge in diesem Forum nicht bearbeiten.
Du kannst deine Beiträge in diesem Forum nicht löschen.
Du kannst an Umfragen in diesem Forum nicht mitmachen.

 Impressum :: Datenschutz