|
Das deutsche QBasic- und FreeBASIC-Forum Für euch erreichbar unter qb-forum.de, fb-forum.de und freebasic-forum.de!
|
Vorheriges Thema anzeigen :: Nächstes Thema anzeigen |
Autor |
Nachricht |
mlb
Anmeldungsdatum: 20.08.2006 Beiträge: 7
|
Verfasst am: 07.10.2006, 15:25 Titel: Speichern, laden, formatieren udn ausgeben funkt nicht |
|
|
hallo!
mein programm funktioniert einfach nicht keien ahnung wiesoo...
was es tun sollte bzw. tut:
eine formaiterung durchführen mittels UP und dann in eien datei speichern
und dann kann man alles endsummen zusammenzäheln und ausgeben
es tut dass:
aber es funkttioniert eifnach nicht... kA wieso..
weder formatiern
noch speichern
noch laden
Code: | '*********************** H A U P T P R O G R A M M ************************
DO
CLS
GOSUB maske
GOSUB menge
GOSUB epreis
GOSUB gpreis
GOSUB rabatt
GOSUB zwsumme1
GOSUB skonto
GOSUB zwsumme2
GOSUB MWSt
GOSUB endbetrag
GOSUB speichern
LOOP
END
'************************ U N T E R P R O G R A M M *************************
maske:
blau = 1
weiss = 7
gruen = 2
rot = 4
CLS
COLOR weiss
LOCATE 1, 5
PRINT "Kassenschirm"
LOCATE 1, 27
PRINT "Manuel L."
LOCATE 1, 61
PRINT DATE$
LOCATE 1, 71
PRINT "/"
LOCATE 1, 72
PRINT TIME$
LOCATE 2, 5
PRINT STRING$(75, "-")
COLOR 1
LOCATE 4, 5
PRINT "Menge"
LOCATE 4, 54
PRINT "Ende: 0"
LOCATE 5, 5
PRINT "Einzelpreis"
LOCATE 6, 5
PRINT STRING$(36, "-");
LOCATE 8, 5
PRINT "Gesamtpreis"
LOCATE 9, 3
PRINT "%"
LOCATE 9, 5
PRINT "Rabatt"
LOCATE 9, 50
PRINT "zul„ssig: 0,5,10,15,20,25"
LOCATE 10, 5
PRINT STRING$(36, "-");
LOCATE 13, 3
PRINT "%"
LOCATE 13, 5
PRINT "Skonto"
LOCATE 13, 50
PRINT "zul„ssig: 0,2,3,5"
LOCATE 14, 5
PRINT STRING$(36, "-");
LOCATE 17, 3
PRINT "%"
LOCATE 17, 5
PRINT "MWSt:"
LOCATE 17, 50
PRINT "zul„ssig: 0,8,10,20,32"
LOCATE 18, 5
PRINT STRING$(36, "-");
LOCATE 20, 5
PRINT "Rechn. Betrag"
RETURN
'************************** UNTERPRORAMMGE ********************************
'*******************************> M E N G E <*******************************
menge:
blau = 1
weiss = 7
gruen = 2
rot = 4
COLOR weiss
LOCATE 4, 35
COLOR 2
INPUT "", menge
IF menge <= 0 THEN
GOSUB laden
END
END IF
menge = FIX(menge)
IF menge < 100 THEN
LOCATE 4, 35
PRINT SPC(4);
LOCATE 4, 36
PRINT menge
IF menge > 100 THEN
LOCATE 4, 35
PRINT SPC(4);
LOCATE 4, 37
PRINT menge
END IF
END IF
WHILE menge > 999
COLOR 4
LOCATE 25, 1
PRINT "Menge'"; menge; "' >999";
COLOR 2
SLEEP 2
LOCATE 25, 1
PRINT SPC(40);
LOCATE 4, 30
PRINT SPC(19);
LOCATE 4, 35
INPUT "", menge
WEND
RETURN
'******************************> E P r e i s <**************************
epreis:
blau = 1
weiss = 7
gruen = 2
rot = 4
COLOR weiss
LOCATE 5, 33
COLOR 2
INPUT "", einzelpreis
WHILE einzelpreis > 9999
LOCATE 25, 1
COLOR 4
PRINT " Einzepreis'"; einzelpreis; "' > 9999";
COLOR 2
SLEEP 2
LOCATE 25, 1
PRINT SPC(79);
LOCATE 5, 28
PRINT SPC(19);
LOCATE 5, 32
INPUT "", einzelpreis
WEND
betrag = einzelpreis
GOSUB format
PRINT ausg$
RETURN
'*********************************> G P R E I S <***************************
gpreis:
blau = 1
weiss = 7
gruen = 2
rot = 4
COLOR blau
LOCATE 8, 27
gespr = menge * einzelpreis
betrag = gpreis
GOSUB format
PRINT ausg$
RETURN
'******************************> R A B A T T < ******************************
rabatt:
blau = 1
weiss = 7
gruen = 2
rot = 4
COLOR weiss
COLOR 2
LOCATE 9, 1
INPUT "", rabatt
WHILE rabatt <> 0 AND rabatt <> 5 AND rabatt <> 10 AND rabatt <> 15 AND rabatt <> 20 AND rabatt <> 25
COLOR 4
LOCATE 25, 1
PRINT "Rabatt "; rabatt; " ist ungueltig! ";
COLOR 2
SLEEP 2
LOCATE 25, 1
PRINT SPC(79);
LOCATE 9, 1
PRINT SPC(79);
COLOR 1
LOCATE 9, 3
PRINT "%"
LOCATE 9, 5
PRINT "Rabatt"
LOCATE 9, 50
PRINT " ";rabatt;" nicht zulaessig, nur : 0,5,10,15,20,25"
COLOR 2
LOCATE 9, 1
INPUT "", rabatt
WEND
IF rabatt < 10 THEN
LOCATE 9, 1
PRINT SPC(2);
LOCATE 9, 1
PRINT rabatt
COLOR 1
LOCATE 9, 3
PRINT "%"
END IF
LOCATE 9, 27
rabatt = (gespr / 100) * rabatt
betrag = rabatt
GOSUB format
PRINT ausg$
RETURN
'***************************************> Z W s u m m e 1 <******************
zwsumme1:
blau = 1
weiss = 7
gruen = 2
rot = 4
COLOR blau
LOCATE 11, 27
zwsum = gespr - rabatt
betrag = zwsum
GOSUB format
PRINT ausg$
RETURN
'****************************************> S K O N T O <******************
skonto:
blau = 1
weiss = 7
gruen = 2
rot = 4
COLOR weiss
LOCATE 13, 2
COLOR 2
INPUT "", skonto
WHILE skonto <> 0 AND skonto <> 2 AND skonto <> 3 AND skonto <> 5
COLOR 4
LOCATE 25, 1
PRINT " "; skonto; "% Skonto ist ungütlig! ";
COLOR 2
SLEEP 2
LOCATE 25, 1
PRINT SPC(79);
LOCATE 13, 1
PRINT SPC(79);
COLOR 1
LOCATE 13, 3
PRINT "%"
LOCATE 13, 5
PRINT "Skonto"
LOCATE 13, 50
PRINT " ";skonto;" nicht zulaessig nur : 0,2,3,5"
COLOR 2
LOCATE 13, 2
INPUT "", skonto
WEND
LOCATE 13, 27
skonto = ((gespr - rabatt) / 100) * skonto
betrag = skonto
GOSUB format
PRINT ausg$
RETURN
'***************************************> Z W S U M M E 2 <*****************
zwsumme2:
blau = 1
weiss = 7
gruen = 2
rot = 4
COLOR blau
LOCATE 15, 27
zwsum2 = zwsum - skonto
betrag = zwsum2
GOSUB format
PRINT ausg$
RETURN
'*********************************> M W S T <****************************
MWSt:
blau = 1
weiss = 7
gruen = 2
rot = 4
COLOR weiss
LOCATE 17, 1
COLOR 2
INPUT "", MWSt
COLOR 1
WHILE MWSt <> 0 AND MWSt <> 8 AND MWSt <> 10 AND MWSt <> 20 AND MWSt <> 32
COLOR 4
LOCATE 25, 1
PRINT " "; MWSt; "% MWSt ist ungültig"
COLOR 2
SLEEP 2
LOCATE 25, 1
PRINT SPC(79);
LOCATE 17, 1
PRINT SPC(79);
COLOR 1
LOCATE 17, 3
PRINT "%"
LOCATE 17, 5
PRINT "MWSt"
LOCATE 17, 50
PRINT " ";mwst;" nicht zulaessig nur: 0,8,10,20,32"
COLOR 2
LOCATE 17, 1
INPUT "", MWSt
WEND
IF MWSt < 10 THEN
LOCATE 17, 1
PRINT SPC(2);
LOCATE 17, 1
COLOR 2
PRINT MWSt
LOCATE 17, 3
COLOR 1
PRINT "%"
END IF
LOCATE 17, 27
MWSt = (gespr / 100) * MWSt
betrag = MWSt
GOSUB format
PRINT ausg$
RETURN
'*****************************> E N D B E T R A G <************************
endbetrag:
blau = 1
weiss = 7
gruen = 2
rot = 4
COLOR blau
LOCATE 20, 27
endsum = zwsum2 + MWSt
betrag = endsum
GOSUB format
PRINT ausg$
SLEEP 10
RETURN
'*****************************> F O R M A T I E R U N G <************************
format:
betrag$ = STR$(betrag)
kommapos = INSTR(betrag$, ".")
IF kommapos > 0 THEN
IF (LEN(betrag$) - kommapos) = 1 THEN
betrag$ = betrag$ + "0"
betrag = VAL(betrag$)
END IF
END IF
IF kommapos > 0 THEN
nk$ = RIGHT$(betrag$, 2)
vk$ = RIGHT$(betrag$, 6)
vk$ = LEFT$(vk$, 3)
IF LEN(betrag$) > 7 THEN
vts$ = LEFT$(betrag$, (LEN(betrag$) - 6))
ausg$ = vts$ + "." + vk$ + "," + nk$
ELSE
ausg$ = vk$ + "," + nk$
END IF
IF kommapos > 0 AND LEN(betrag$) >= 9 AND betrag > 99999.99 THEN
nk$ = "": vk$ = "": vts$ = ""
nk$ = RIGHT$(betrag$, 2)
vk$ = RIGHT$(betrag$, 6)
vk$ = LEFT$(vk$, 3)
vts$ = LEFT$(betrag$, (LEN(betrag$) - 6))
ausg$ = vts$ + "." + vk$ + "," + nk$
END IF
END IF
RETURN
'*****************************> S P E I C H E R N <************************
speichern:
leer$ = SPACE$(12)
menge$ = STR$(menge)
menge$ = menge$ + leer$
menge$ = LEFT$(menge$, 3)
epreis$ = STR$(epreis)
epreis$ = epreis$ + leer$
epreis$ = LEFT$(epreis$, 8)
gpreis$ = STR$(gpreis)
gpreis$ = gpreis$ + leer$
gpreis$ = LEFT$(gpreis$, 12)
rabbetrag$ = STR$(rabbetrag)
rabbetrag$ = rabbetrag$ + leer$
rabbetrag$ = LEFT$(rabbetrag$, 12)
zwsum1$ = STR$(zwsum1)
zwsum1$ = zwsum1$ + leer$
zwsum1$ = LEFT$(zwsum1$, 12)
skontobetrag$ = STR$(skontobetrag)
skontobetrag$ = skontobetrag$ + leer$
skontobetrag$ = LEFT$(skontobetrag$, 10)
zwsum2$ = STR$(zwsum2)
zwsum2$ = zwsum2$ + leer$
zwsum2$ = LEFT$(zwsum2$, 12)
MWSt$ = STR$(MWSt)
MWSt$ = MWSt$ + leer$
MWSt$ = LEFT$(MWSt$, 12)
endbetrag$ = STR$(endbetrag)
endbetrag$ = endbetrag$ + leer$
endbetrag$ = LEFT$(endbetrag$, 12)
record$ = menge$ + epreis$ + gpreis$ + rabbetrag$ + zwsum1$ + skontobetrag$ + szwum2$ + MWSt$ + endbetrag$
OPEN "C:\ksv3_17.dat" FOR APPEND AS #1
PRINT #1, record$
CLOSE #1
RETURN
'*****************************> L A D E N <********************************
laden:
OPEN "C:\ksv3_17.dat" FOR INPUT AS #1
WHILE NOT EOF(1)
LINE INPUT #1, satz$
amenge$ = LEFT$(satz$, 3)
aepreis$ = MID$(satz$, 4, 8)
agpreis$ = MID$(satz$, 12, 12)
rabbetrag$ = MID$(satz$, 24, 12)
azwsum1$ = MID$(satz$, 36, 12)
askonto$ = MID$(satz$, 48, 10)
azwsum2$ = MID$(satz$, 58, 12)
amwst$ = MID$(satz$, 70, 12)
arbetrag$ = MID$(satz$, 82, 12)
smenge = smenge + VAL(amenge$)
sepreis = ssepreis + VAL(aepreis$)
sgpreis = sgpreis + VAL(agpreis$)
srabatt = srabatt + VAL(arabatt$)
szwsum1 = szwsum1 + VAL(azwsum1$)
sskonto = sskonto + VAL(askonto$)
szwsum2 = szwsum2 + VAL(azwsum2$)
smwst = smwst + VAL(amwst$)
srbetrag = srbetrag + VAL(arbetrag$)
WEND
CLOSE #1
LOCATE 4, 35
betrag = menge
GOSUB format
LOCATE 5, 33
betrag = epreis
GOSUB format
LOCATE 8, 27
betrag = gpreis
GOSUB format
LOCATE 9, 1
betrag = rabatt
GOSUB format
LOCATE 11, 27
betrag = zwsum1
GOSUB format
LOCATE 13, 2
betrag = skonto
GOSUB format
LOCATE 15, 27
betrag = zwsum2
GOSUB format
LOCATE 17, 1
betrag = MWSt
GOSUB format
LOCATE 20, 27
betrag = endsum
GOSUB format
RETURN |
Editiert durch Moderator: Code-Tags hinzugefügt. (Sebastian) _________________ so einfach wie möglich, so kompliziert wie notwendig |
|
Nach oben |
|
|
Michael Frey
Anmeldungsdatum: 18.12.2004 Beiträge: 2577 Wohnort: Schweiz
|
|
Nach oben |
|
|
mlb
Anmeldungsdatum: 20.08.2006 Beiträge: 7
|
Verfasst am: 14.10.2006, 12:55 Titel: |
|
|
schon passiert
durch einen Moderator *G* _________________ so einfach wie möglich, so kompliziert wie notwendig |
|
Nach oben |
|
|
Mao
Anmeldungsdatum: 25.09.2005 Beiträge: 4409 Wohnort: /dev/hda1
|
Verfasst am: 14.10.2006, 13:04 Titel: |
|
|
Äh...also, so leid es mir auch tut, aber:
ich glaub nicht, dass sich jemand diesen Spaghetti-Code anschaut.
Mein Vorschlag deshalb: schreibe das Programm (soo groß isses ja nicht) nochmal (strukturiert!) neu, benutze lieber Sub's und Functions, statt GoTo oder GoSub.
Dann: Code-Einrückungen. Die machen das Ganze überschaubarer.
Für alle diese Themen siehe: QB-MonsterFAQ. _________________ Eine handvoll Glück reicht nie für zwei.
--
|
|
Nach oben |
|
|
|
|
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.
|
|