Basic 2.201: bug fixes in STR$ G and STR$ K

This commit is contained in:
Joerg Deckert 2014-05-20 20:05:06 +02:00
parent cbee494fe7
commit 14bc607b4d
1 changed files with 54 additions and 52 deletions

View File

@ -589,7 +589,14 @@ Logbuch :
13-05-2014 -Befehl PUT kreiert für die direkte Zeichenausgabe mit x-y Koordinaten, hier wird die aktuelle Zeichen-und Hintergrundfarbe benutzt
-ist etwas schneller als pos x,y + Print
-1356 Longs frei
-Fehler in der DIR-Routine behoben (im Modus 0 wurde nichts gelesen)
-DIR-Routine gestrafft
-1369 Longs frei
16-05-2014 -################### Version 2.2 veröffentlicht ####################
'############################################################ Version 2.3 ######################################################################################################
--------------------------------------------------------------------------------------------------------- }}
@ -1736,9 +1743,9 @@ PRI stringfunc2|a8,b8,c8,function,a,b
b:=c8
"r","R":a:=a8-b8
b:=b8
"u","U":charactersUpperLower(@font,0) 'in Grossbuchstaben umwandeln
"g","G":charactersUpperLower(@font,0) 'in Grossbuchstaben umwandeln
return
"d","D":charactersUpperLower(@font,1) 'in Kleinbuchstaben umwandeln
"k","K":charactersUpperLower(@font,1) 'in Kleinbuchstaben umwandeln
return
other:
@ -1757,10 +1764,10 @@ PRI charactersUpperLower(characters,mode) '' 4 Stack Longs
result := byte[++characters]
if mode
if((result > 64) and (result < 91)) 'nur A -Z
if((result > 64) and (result < 91)) 'nur A -Z in Kleinbuchstaben
byte[characters] := (result + 32)
else
if(result > 96) 'nur a-z
if(result > 96) 'nur a-z in Großbuchstaben
byte[characters] := (result - 32)
@ -1811,7 +1818,7 @@ PUB substr (strAddr, start, count)
bytemove(@strtmp, strAddr + start, count) 'just move the selected section
return @strtmp
obj '*********************************************** TIMER-FUNKTIONEN ***********************************************************************************************************
con' *********************************************** Verwaltung der acht Timer **************************************************************************************************
con' *********************************************** Verwaltung der acht Timer und 4 Counter ************************************************************************************
PRI timerfunction:b|a,c,function
function:=spaces
skipspaces
@ -2665,14 +2672,13 @@ PRI texec | ht, nt, restart,a,b,c,d,e,f,h,elsa
Input_String
komma
a:=expr(1)
charactersUpperLower(@f0,0)
h_dir(dzeilen,a,@f0)
elseifnot spaces
h_dir(dzeilen,modus,@ext5) 'directory ohne parameter nur anzeigen
else
param(1)
dzeilen:=prm[0]
modus:=a:=prm[1]
modus:=prm[1]
h_dir(dzeilen,modus,@ext5)
@ -3816,7 +3822,7 @@ pri zahlenformat(h)|j
return FS.FloatToString(h) 'Zahlenwerte ohne Exponent
con '****************************************** Directory-Anzeige-Funktion *******************************************************************************************************
PRI h_dir(z,mode,str) | stradr,n,i,tt,dlen,dd,mm,jj,color,xstart 'hive: verzeichnis anzeigen
PRI h_dir(z,modes,str) | stradr,n,i,tt,dlen,dd,mm,jj,color,xstart 'hive: verzeichnis anzeigen
{{h_dir - anzeige verzeichnis}} 'mode 0=keine Anzeige,mode 1=einfache Anzeige, mode 2=erweiterte Anzeige
ios.printcursorrate(0) 'cursor ausschalten
mount
@ -3829,66 +3835,62 @@ PRI h_dir(z,mode,str) | stradr,n,i,tt,dlen,dd,mm,jj,color,xstart
if byte[str][i]>96
byte[str][i]^=32
i++
ios.sddir 'kommando: verzeichnis öffnen
n := 0 'dateizaehler
i := 0 'zeilenzaehler
repeat while stradr <> 0 'wiederholen solange stradr <> 0
'wiederhole bis verzeichnisende
stradr:=ios.sdnext 'einen eintrag holen
repeat while (stradr:=ios.sdnext)<>0 'wiederholen solange stradr <> 0
dlen:=ios.sdfattrib(0) 'dateigroesse
dd:=ios.sdfattrib(10) 'Aenderungsdatum tag
mm:=ios.sdfattrib(11) 'Aenderungsdatum monat
jj:=ios.sdfattrib(12) 'Aenderungsdatum Jahr
if stradr <> 0 'ist eintrag gültig?
color:=farbe
bytemove(@file1,stradr,12)
scanstr(@file1,1) 'dateierweiterung extrahieren
scanstr(stradr,1) 'dateierweiterung extrahieren
ifnot ios.sdfattrib(17) 'unsichtbare Dateien ausblenden
if strcomp(@buff,str) or strcomp(str,@ext5) 'Filter anwenden
n++
if n<DIR_ENTRY 'Begrenzung der Einträge auf die mit DIR_ENTRY vereinbarte
WriteNameToRam(stradr,n) 'Dateiname zur spaeteren Verwendung in ERam speichern an adresse n
'################## Bildschrirmausgabe ##################################
if mode>0
if modes>0
if strsize(@buff)<3 'verzeichnis
color:=hintergr-125
ios.print(stradr)
ios.print(stradr)
if mode==2
erweitert(xstart,dlen,dd,mm,jj)
ios.printnl
ios.setx(xstart)
i++
if i==z '**********************************
'errortext(37,0)
if ios.keywait == ios#CHAR_ESC 'auf Taste warten, wenn ESC dann Ausstieg
if cursor==1 '**********************************
ios.printCursorRate(3) '**********************************
ios.printnl '**********************************
ios.print(string("OK>"))
close '**********************************
filenumber:=n 'Anzal der Dateien merken
return '**********************************
i := 0 '**********************************
if modes==2
erweitert(xstart,dlen,dd,mm,jj)
ios.printnl
ios.setx(xstart)
i++
if mode>0 'sichtbare Ausgabe
ios.printdec(n) 'Anzahl Dateien
errortext(43,0)
ios.printnl
if cursor==1
ios.printCursorRate(3)
filenumber:=n 'Anzal der Dateien merken
close 'ins Root Verzeichnis ,SD-Card schliessen und unmounten
if i==z '**********************************
if ios.keywait == ios#CHAR_ESC 'auf Taste warten, wenn ESC dann Ausstieg
if cursor==1 '**********************************
ios.printCursorRate(3) '**********************************
ios.printnl '**********************************
close '**********************************
filenumber:=n 'Anzal der Dateien merken
abort '**********************************
i := 0 '**********************************
ios.printnl
ios.setx(xstart)
if modes==0
if n<DIR_ENTRY 'Begrenzung der Einträge auf die mit DIR_ENTRY vereinbarte
WriteNameToRam(stradr,n) 'Dateiname zur spaeteren Verwendung in ERam speichern an adresse n
if modes 'sichtbare Ausgabe
ios.printdec(n) 'Anzahl Dateien
errortext(43,0)
ios.printnl
if cursor==1
ios.printCursorRate(3)
filenumber:=n 'Anzal der Dateien merken
close 'ins Root Verzeichnis ,SD-Card schliessen und unmounten
abort
PRI WriteNameToRam(str,nummer)|adress,position,c 'Dateiliste in ERam schreiben
position:=(nummer-1)*13
adress:=DIR_RAM+position
@ -3909,11 +3911,11 @@ PRI erweitert(startx,laenge,tag,monat,jahr) 'erwei
ios.setx(startx+14)
ios.printdec(laenge)
ios.setx(startx+20)
ios.setx(startx+21)
ios.printdec(tag)
ios.setx(startx+23)
ios.setx(startx+24)
ios.printdec(monat)
ios.setx(startx+26)
ios.setx(startx+27)
ios.printdec(jahr)
PRI scanstr(f,mode) | z ,c 'Dateiendung extrahieren