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:

Schreibschutz hinzufügen

 
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
pIxXxeL



Anmeldungsdatum: 25.01.2005
Beiträge: 4

BeitragVerfasst am: 27.01.2005, 21:28    Titel: Schreibschutz hinzufügen Antworten mit Zitat

Hallo (:


Ich möchte gerne meine .txt Datei schreibschützen aus QBasic heraus...

Kann mir jemand sagen wie das geht?

Danke im Vorraus
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Gremlin



Anmeldungsdatum: 12.12.2004
Beiträge: 142
Wohnort: Heinsberg

BeitragVerfasst am: 27.01.2005, 21:44    Titel: Antworten mit Zitat

ASTTRIB /? hat Folgendes geschrieben:
Zeigt die Dateiattribute an oder ändert sie.

ATTRIB [+R | -R] [+A | -A] [+S | -S] [+H | -H] [[Laufwerk:][Pfad]Dateiname] [/S]

+ Aktiviert ein Attribut.
- Deaktiviert ein Attribut.
R Dateiattribut "Schreibgesüch?tzt".
A Dateiattribut "Archiv".
S Dateiattribut "Systemdatei".
H Dateiattribut "Versteckte Datei".
/S Verarbeitet Dateien in allen Verzeichnissen des angegebenen Pfads.

Dementsprechend kannst du also in QB
Code:
SHELL "ATTRIB +R Text.txt"
schreiben.
_________________
Tja, hier konnte ihre Werbung stehen.
Pech gehabt. zwinkern
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
pIxXxeL



Anmeldungsdatum: 25.01.2005
Beiträge: 4

BeitragVerfasst am: 27.01.2005, 21:55    Titel: Antworten mit Zitat

so nächstes problem ;\

Mein Programm soll einmalig beim ersten Start eine Datei erzeugen.
In der Datei ist ein Wert gespeichert der jedesmal wenn mein Programm ausgeführt wird um 1 erhöht wird und wenn er 5 erreicht hat soll er wieder auf 0 gesetzt werden...
Mein Problem... wenn ich die Schreibschutzattribute hinzufüge kommt beim 2. Start des Programms die Fehlermeldung das er nicht zugreifen konnte....
Wenn ich sie Weglasse dann wird die Datei jedesmal überschrieben und der Wert in der Datei bleibt 1

Ich hoffe ihr könnt mir Helfen obwohl ich alles so unübersichtlich geschrieben habe traurig


Code:
OPEN "C:\asdf.txt" FOR OUTPUT AS #1
        CLOSE #1



OPEN "C:\asdf.txt" FOR INPUT AS #1
       
        DO UNTIL EOF(1)
        INPUT ; restart
        LOOP

        CLOSE #1

IF restart >= 5 THEN
        LET restart = 0
        SHELL "ATTRIB -R C:\asdf.txt"
                OPEN "C:\bootlog.txt" FOR OUTPUT AS #1
                PRINT #1, restart
                CLOSE #1
                SHELL "ATTRIB +R C:\asdf.txt"

       
        ELSE
        LET restart = restart + 1
        SHELL "ATTRIB -R C:\asdf.txt"
                OPEN "C:\asdf.txt" FOR OUTPUT AS #1
                PRINT #1, restart
                CLOSE #1
        SHELL "ATTRIB +R C:\asdf.txt"

        END IF

END
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Gremlin



Anmeldungsdatum: 12.12.2004
Beiträge: 142
Wohnort: Heinsberg

BeitragVerfasst am: 27.01.2005, 22:27    Titel: Antworten mit Zitat

Code:
SHELL "ATTRIB -R C:\asdf.txt"  ' Hatte C:\ vergessen

OPEN "C:\asdf.txt" FOR OUTPUT AS #1
CLOSE #1

OPEN "C:\asdf.txt" FOR INPUT AS #1
  INPUT #1, zahl%     ' wenn die Zahl in der ersten Zeile steht
CLOSE #1

OPEN "C:\asdf.txt" FOR OUTPUT AS #1
  zahl% = zahl% + 1
  IF zahl% = 5 THEN zahl% = 0
  PRINT #1, zahl%
CLOSE #1

SHELL "ATTRIB +R C:\asdf.txt"   ' Auch hier war kein C:\

END
Wie immer: Ungetestet zwinkern
_________________
Tja, hier konnte ihre Werbung stehen.
Pech gehabt. zwinkern
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
pIxXxeL



Anmeldungsdatum: 25.01.2005
Beiträge: 4

BeitragVerfasst am: 27.01.2005, 23:02    Titel: Antworten mit Zitat

Das hilft nichts damit ist mein Problem leider nicht gelöst, aber danke (;

Weil wenn

Code:
OPEN "C:\asdf.txt" FOR OUTPUT AS #1
        CLOSE #1


ausgeführt wird überschreibt er ja die Datei mit dem Wert neutral
Allerdings brauche ich diese 2 Zeilen, damit beim ersten Programmstart die Datei überhaupt erzeugt wird :\

Hat jemand eine Ahnung wie das umgangen werden kann?

Code:


OPEN "C:\asdf.txt" FOR OUTPUT AS #1
        CLOSE #1



OPEN "C:\asdf.txt" FOR INPUT AS #1
       
        DO UNTIL EOF(1)
        INPUT ; restart
        LOOP

        CLOSE #1

IF restart >= 5 THEN
        LET restart = 0
        SHELL "ATTRIB -R C:\asdf.txt"
                OPEN "C:\bootlog.txt" FOR OUTPUT AS #1
                PRINT #1, restart
                CLOSE #1
                SHELL "ATTRIB +R C:\asdf.txt"

       
        ELSE
        LET restart = restart + 1
        SHELL "ATTRIB -R C:\asdf.txt"
                OPEN "C:\asdf.txt" FOR OUTPUT AS #1
                PRINT #1, restart
                CLOSE #1
        SHELL "ATTRIB +R C:\asdf.txt"

        END IF

END
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
dreael
Administrator


Anmeldungsdatum: 10.09.2004
Beiträge: 2529
Wohnort: Hofen SH (Schweiz)

BeitragVerfasst am: 27.01.2005, 23:18    Titel: Antworten mit Zitat

Bei so einem Post darf natürlich die CALL INTERRPUPT-Variante nicht fehlen, ist schliesslich noch ein Quentchen schneller, weil im Gegensatz zu SHELL kein Tochter-Prozess im MS-DOS-Betriebssystem gestartet werden muss. :-) Vollständiges Beispiel:

http://beilagen.dreael.ch/QB/DAT_ATTR.BAS

Hinweis: Durch Anpassen der Zeile
Code:
attr% = attr% OR 1

in der Programmmitte kann man auch beliebig andere Attribute setzen und löschen.

Datei verstecken:
Code:
attr% = attr% OR 2


Read-Only wieder aufheben:
Code:
attr% = attr% AND -2


(-2 = &HFFFE = 11111111'11111110 = NOT 1)
_________________
Teste die PC-Sicherheit mit www.sec-check.net
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen
Gremlin



Anmeldungsdatum: 12.12.2004
Beiträge: 142
Wohnort: Heinsberg

BeitragVerfasst am: 29.01.2005, 21:20    Titel: Antworten mit Zitat

Vielleicht folgendes:

Code:
ON ERROR GOTO Fehlerbehandlung

' Eigentlicher Code

END

Fehlerbehandlung:
  OPEN "C:\asdf.txt" FOR OUTPUT AS #1
  CLOSE #1
  RUN

_________________
Tja, hier konnte ihre Werbung stehen.
Pech gehabt. zwinkern
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
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