Screenshot Function für Anfänger

Übersicht BlitzBasic Codearchiv

Neue Antwort erstellen

Chester

Betreff: Screenshot Function für Anfänger

BeitragSa, Okt 09, 2004 18:39
Antworten mit Zitat
Benutzer-Profile anzeigen
Mit disen Function kannst du ein screen machen namens screen1.bmp
und wenn du dann das proggi schließt und wieder öffnest, speichert er den nächsten screen als screen2.bmp, statt dessen er das alte überschreibt

BlitzBasic: [AUSKLAPPEN]

Const endung$ = ".bmp" ;; Beliebig änderbar, <--- Die Dateiendung

;Der Ordner Screens muss erstellt sein, sonst FehlerMeldung
;ebenfálls die Datei Screen.txt ohne Inhalt <---

lade_screenanz()

;;Laden von Bildern etc. Beginn der Hauptschleife


screen()

;;ende der Hauptschleife

speicher_screenanz()

End ; die Function speicher_screenanz VOR End

;Die Functionen:

Function screen()
bild_anz$ = bild_anz0 ; die Variable der Text datei, in der des Proggs speichern
bild_n$ = "Screen"+bild_anz
Bild_name$ = bild_n + endung
; der bildname = "sceen" + bilder anzahl + datei endung

If KeyHit(68) Then ; wenn F10 gedrückt wird dann
SaveBuffer FrontBuffer(), "Screens\"+bild_name ; speichere aktuelles MonitorFrame im Ordner Screens\ mit dem Namen der Varianle bild_name

bild_anz0 = bild_anz0 + 1 ; die bild anzahl wird um eins erhöht, das keine datei gelöscht wird
EndIf

End Function

Function lade_screenanz()
stream1 = OpenFile("Screens\screen.txt") ; öffne Datei screen.txt
bild_anz0 = ReadLine(stream1) ; lese die erste Zeile, in der die Anzahl der bisherigen Screnns stehen
End Function

Function speicher_screenanz()
stream2 = WriteFile("Screens\screen.txt") ; öfffne datei screen.txt
WriteLine stream2, bild_anz0 ; schreibe die neue bilder anzahl in Datei
CloseFile stream2 ;schließe Datei
End Function


Viel Spaß!

[EDIT] DAs war meine erste Funciton indem mit Dateien gearbeitet wurde
[/EDIT]
  • Zuletzt bearbeitet von Chester am Sa, Okt 09, 2004 18:57, insgesamt 2-mal bearbeitet

Travis

BeitragSa, Okt 09, 2004 19:01
Antworten mit Zitat
Benutzer-Profile anzeigen
Warum sollte man die Anzahl der vorhandenen Screenshots denn extra in einer Datei abspeichern?

Ich bevorzuge da eher das vorherige durchzählen.

BlitzBasic: [AUSKLAPPEN]

; ------ Screenshot erstellen ------
Function Screenshot()

; Anzahl der vorhandenen Screenshots bestimmen
Screens = 1
Repeat
Status = OpenFile("Screens\Screen"+Screens+".bmp")
If Not Status = 0 Then Screens = Screens + 1
Until Status = 0

; Screenshot erstellen
Bild = SaveBuffer(FrontBuffer(),"Screens\Screen"+Screens+".bmp")

End Function
; ------ Screenshot erstellen ------
www.funforge.org

Ich hasse WASD-Steuerung.

Man kann alles sagen, man muss es nur vernünftig begründen können.

Chester

BeitragSa, Okt 09, 2004 19:07
Antworten mit Zitat
Benutzer-Profile anzeigen
Da bin ich jetzt nicht draufgekommen aber gute Idee ^^ Very Happy

War halt meine erste Datei Function, und kannte mich damit noch nicht so richtig aus......

Mr.Keks

BeitragMo, Okt 11, 2004 21:02
Antworten mit Zitat
Benutzer-Profile anzeigen
ich mache das auch so wie travis (nur mit FileType, weil dieser befehl wirklich dazu gedacht ist Wink)

allerdings: was soll DAS?!Zitat:
Bild = SaveBuffer(FrontBuffer(),"Screens\Screen"+Screens+".bmp")
MrKeks.net
 

Weazle25

BeitragDi, Okt 12, 2004 4:33
Antworten mit Zitat
Benutzer-Profile anzeigen
Inarie hat Folgendes geschrieben:
ich mache das auch so wie travis (nur mit FileType, weil dieser befehl wirklich dazu gedacht ist Wink)

allerdings: was soll DAS?!Zitat:
Bild = SaveBuffer(FrontBuffer(),"Screens\Screen"+Screens+".bmp")


Also ich würde mal sagen das in "Bild" der Rückgabewert von SaveBuffer() gespeichert wird Wink (1=Bild wurde gespeichert; 0=Bild wurde nicht gespeichert).
Mal davon abgesehen das der Variablenname etwas verunglückt ist.


Gruss
Weazle

Jan_

Ehemaliger Admin

BeitragDi, Okt 12, 2004 10:11
Antworten mit Zitat
Benutzer-Profile anzeigen
Etwas besser.

BlitzBasic: [AUSKLAPPEN]

;Graphics 320,240,24,2
;SetBuffer BackBuffer()
;Repeat
; m=m+1
; Cls
; Text 0,0,m
; Flip
; Print Screenshot()
;Until KeyHit(1)

Function Screenshot()
Local Verzeichnis%
Local Datei$
Local Anzahl%
Verzeichnis=ReadDir ("Screenshots\")
If Verzeichnis =0 Then
CreateDir "Screenshots\"
Verzeichnis=ReadDir ("Screenshots\")
If Verzeichnis =0 Then RuntimeError "Fehler beim Versuch verzeichniss zu erstellen."
EndIf
Repeat
Datei$=NextFile$(Verzeichnis)
If FileType(CurrentDir$+"Screenshots\"+Datei$) = 1 Then
If Int(Mid(Datei$,11,Len(Datei$)-13)) > Anzahl Then Anzahl = Int(Mid(Datei$,11,Len(Datei$)-13))
End If
Until Datei$=""
CloseDir Verzeichnis
Return SaveBuffer(FrontBuffer(),"Screenshots\"+"Screenshot"+(Anzahl+1)+".bmp")
End Function
between angels and insects

Neue Antwort erstellen


Übersicht BlitzBasic Codearchiv

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group