CopyFile() -> FileCopy()

Übersicht BlitzBasic Codearchiv

Neue Antwort erstellen

TheProgrammer

Betreff: CopyFile() -> FileCopy()

BeitragFr, Mai 28, 2004 17:47
Antworten mit Zitat
Benutzer-Profile anzeigen
Hi.

Mich hat es immer aufgeregt, dass, wenn man schreibgeschützte
Dateien kopiert, sie schreibgeschützt bleiben.

Das ist z.B. dann störend, wenn man ein programmiertes
Spiel (mit einem selber programmierten Setup-Programm)
von CD auf die Festplatte kopiert. Die .sav-Dateien (die
Spielstände) kann man dann nicht mehr vom Programm aus
überschreiben.

Deshalb habe ich kurz eine Funktion geproggt, mir der die
Dateien nicht mehr schreibgeschürtz sind:

BlitzBasic: [AUSKLAPPEN]

Function FileCopy(file1$,file2$)

file_1 = ReadFile(file1$)
file_2 = WriteFile(file2$)

lines = ReadLines(file1$)

For I = 1 To lines
WriteLine(file_2,ReadLine(file_1))
Next

CloseFile file_1
CloseFile file_2

End Function

Function readlines(pfad$)

file = ReadFile(pfad$)
Repeat
If Eof(file) = 1 Then Exit
count = count + 1
ReadLine(file)
Forever
Return count

End Function



PS.: Bitte nicht rummeckern. Ich weiß, dass das
jeder andere gekonnt hätte und dass es vieleicht
sinnlos wäre.
aktuelles Projekt: The last day of human being

Ctuchik

BeitragFr, Mai 28, 2004 19:08
Antworten mit Zitat
Benutzer-Profile anzeigen
Warum 2 Funktionen?
Nicht getestet aber sollte ja wohl gehen:
BlitzBasic: [AUSKLAPPEN]

Function CopyFile(file1$,file2$)
f1$ = ReadFile(file1$)
f2$ = WriteFile(file2$)
While Not Eof(f1$)
WriteByte f2$,ReadByte(f1$)
Wend
CloseFile(f1$)
CloseFile(f2$)
End Function

Markus2

BeitragFr, Mai 28, 2004 19:42
Antworten mit Zitat
Benutzer-Profile anzeigen
ReadLine läßt bestimmt 1310 weg Wink

Übrigens kannste auch über API die Dateiattribute setzen ...
GetFileAttributes
SetFileAttributes

Rallimen

Sieger des 30-EUR-Wettbewerbs

BeitragFr, Mai 28, 2004 22:38
Antworten mit Zitat
Benutzer-Profile anzeigen
Das Problem habe ich damit gelöst das ich beim ersten Start eine Highscore vom Code aus erstelle die ja dann nicht schreibgeschützt ist!

wenn das Programm dann erneut gestartet wird schau ich nach ob schon eine exestiert und benutzte dann diese!

Damit kann man dann auch die Highscore einfach löschen da ja dann wieder eine neue erstellt wird!

Oder wie schon gesagt einfach die Attribute ändern , geht aber nicht mit bb2d über API sondern mit execfile mit Dos Attrib
[BB2D | BB3D | BB+]
 

Edlothiol

BeitragDi, Jun 01, 2004 11:36
Antworten mit Zitat
Benutzer-Profile anzeigen
@Ctuchik:
BlitzBasic: [AUSKLAPPEN]

f1 = ReadFile(file1$)
f2 = WriteFile(file2$)
Die $ weg...

Dürfte wohl ein bisschen schneller sein (ungetestet):
BlitzBasic: [AUSKLAPPEN]
Function CopyFile(file1$,file2$)
f1 = ReadFile(file1$)
f2 = WriteFile(file2$)
b = CreateBank(FileSize(file1))
ReadBytes(b,f1,0,FileSize(file1))
WriteBytes(b,f2,0,FileSize(file1))
CloseFile(f1$)
CloseFile(f2$)
End Function

Neue Antwort erstellen


Übersicht BlitzBasic Codearchiv

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group