Herzlich Willkommen, lieber Gast!
  Sie befinden sich hier:

  Forum » Borland C++ Builder » Speichern von exe-Datei nach dem Schließen

Forum | Hilfe | Team | Links | Impressum | > Suche < | Mitglieder | Registrieren | Einloggen
  Quicklinks: MSDN-Online || STL || clib Reference Grundlagen || Literatur || E-Books || Zubehör || > F.A.Q. < || Downloads   

Autor Thread - Seiten: [ 1 ] > 2 < [ 3 ]
010
15.07.2008, 16:14 Uhr
Dominik_88



Hi

Ich habe gerade auf die Frage 2 selbst antworten können. Es liegt an, dass ich die C++ unter Administration starte und wenn ich exe-Datei normal starte, dann wird Textdatei nicht erstellt bzw. bearbeitet.

Ich habe bis jetzt die Ergebnisse in einer Textdatei speichern können mit ios::out.
Jetzt geht es mir nur noch um das einlesen aus diesem Textdatei. Nur ich weiß nicht an welcher Stelle und mit welchem Befehl ich einfügen muss.

Bonusfrage:
Immer wenn ich meine exe-Datei öffne, dann wird ja Textdatei erstellt, aber immer im Ordner wo die exe-Datei ist. Wie muss ich programmieren, damit es egal ist wo meine exe-Datei ist und der Textdatei soll z.B. nur im Verzeichnis: "C-Festplatte -> Programme -> Test" gespeichert werden, so dass keiner wissen kann wo gespeichert wurde. Das wäre typisch für eine Schnittberechnung von einem Spiel. So haben die schlechten Spieler keine Chance mit einem niedrigeren Schnitt diese Datei zu löschen :-D

Viele liebe Grüße und ich würde mich sehr über die Antworten freuen

Bis dann, Dominik
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
011
15.07.2008, 18:40 Uhr
Dominik_88



Hi

Ich habe endlich hinbekommen, dass die Daten vom Textdatei ausgelesen werden kann :-)

Es wäre noch besser, wenn meine Bonusfrage (siehe letzter Beitrag) beantworten werden könnte :-)

Ich habe jetzt für Kniffel jeweils 5 Textdaten gebraucht weil ich auch 5 Daten speichern will, also: Runden, Schnitt, Gesamtpunkte, Maximum, Minimum.
Kann man diesen 5 Daten auch in einem Textdaten speichern, dann würde eine Textdatei z.B. so aussehen:

2
608
304
272
236

Und nach dem öffnen die erste Zeile vom Textdatei (2) in die erste Label, die zweite Zeile (608) in die zweite Label, usw...
Ist das möglich? Wenn ja, wie?

Viele liebe Grüße

Bis dann, Dominik
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
012
15.07.2008, 22:47 Uhr
öni



Dann müsstes du die Daten Zeilenweise einlesen und reinschreiben.

Also wenn du f.open("test.dat", ios::in); einliest. dann kannst du zeilenweise einlesen und zwar so:


C++:
int runden,Schnitt, Gesamtpunkte;

f >> runden;
f >> Schnitt;
f >> Gesamtpunkte;
//......



Der nimmt dann immer die nächste Zeile, und so kann man auch zeilenweise reinschreiben.

Zu deiner Bonusfrage, du könntest einen absoluten Pfad angeben, aber jeder der dann dein Programm hat muss eben die Textdateien da auch abspeichern.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
013
16.07.2008, 23:19 Uhr
Dominik_88



Hi öni

Vielen Dank für deine Antwort. Bei mir hat es sofort funktioniert :-)

An welcher Stelle von Text muss ich den Pfad einfügen, damit der Datei in diesem Pfad gespeichert werden kann. Und wie muss der Pfad aussehen? Muss ich mit eckige Klammern setzen, also [CProgramme\Statistik\test.txt].

Kann man diese Textdatei auch direkt im exe-Datei speichern statt als neuer Datei? D.h. die Daten stecken in der exe-Datei und man würde keine weiteren Daten zum Statistik laden benötigen.

Wenn ihr die Antwort nicht wisst, dann ist auch nicht so schlimm, weil meine wichtigsten Fragen beantwortet wurden.

Viele liebe Grüße

Dominik
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
014
17.07.2008, 13:22 Uhr
~jogt
Gast


Ich würde dir eher zur Benutzung der entsprechenden VCL Klassen wie z.B. TStringList raten.
Die Punktzahl würde ich verschlüsseln und eventuell mit irgendeinem Hash Verfahren gegen Manipulation schützen.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
015
17.07.2008, 14:44 Uhr
Dominik_88



Hi jogt

Ist TStringList ein Befehl, mit dem man die Textdatei über Statistik in einem bestimmten Verzeichnis erstellen kann?
Wenn ja, wo muss ich diesen Befehl anwenden? bei f.stream?

Wie kann man die Punktzahl verschlüsseln? Und wie kann man gegen Manipulation schützen?

Viele liebe Grüße

Dominik
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
016
17.07.2008, 21:41 Uhr
öni




C++:
f.open("C:    \Programme\Statistik\test.txt", ios::in);


Dann öffnet er eben immer die Datei indem Verzeichnis, falls diese nicht existiert musst du sie eben anlegen oder eine Fehlermeldung bringen.

Probleme wirst du eben bekommen wenn jemand dein Programm hat und kein C Laufwerk hat oder eben nicht diese Verzeichnis besitzt.

In die exe selber kann man nur Dinge abspeichern die immer den selben Wert (Konstanten) haben oder eben Dinge deren Wert nach Beendigung gelöscht wird (Variablen). Den sobald du die exe compiliert hast ist sie nicht wieder veränderbar, sämtliche Variablen liegen dann nur im RAM und werden später wieder gelöscht.

@jogt
Ich will mich nicht als Vollprofi sehen oder als Fortgeschrittener aber ich glaube die Lösung mit Verschlüsseln und Hash Verfahren übersteig Dominik's Fähigkeiten, ich wüsste selber nicht wie man sowas macht.

Dieser Post wurde am 17.07.2008 um 21:41 Uhr von öni editiert.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
017
20.07.2008, 21:24 Uhr
Dominik_88



Hi öni

Da es zu Problemen kommen könnten, wenn ich den Datei in einem bestimmten Verzeichnis schicken will, will ich lieber die Speicherdaten im derselben Verzeichnis speichern.
Aber trotzdem will ich mich für die Hilfe vom Statistik in einem Datei zu speichern bedanken.

@jogt
Kannst du mir bitte gerne beschreiben, wie man die Daten verschlüsseln kann bzw. Hash Verfahren.

Viele liebe Grüße

Dominik
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
018
21.07.2008, 13:02 Uhr
~jogt
Gast


Der Umgang mit TStringList ist recht simpel.
Du könntest einfach XOR verschlüsseln.
Zum XOR ver bzw. entschlüsseln würde ich mal googlen.


C++:
TStringList *liste = new TStringList();
liste->LoadFromFile("pkt.dat");
String data = liste->Strings[0];
...
Daten entschlüsseln
...
delete liste;

 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
019
21.07.2008, 13:08 Uhr
~jogt
Gast


So aus dem Gedächtnis einfach mal so

C++:
for(unsigned x=0;x<liste->Count;x++)
{
for (unsigned n=0;n<liste->Strings[x].Length;n++)
{
liste->Strings[x][n] = liste->Strings[x][n] ^ irgendeinwert;
}
}

 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
Seiten: [ 1 ] > 2 < [ 3 ]     [ Borland C++ Builder ]  


ThWBoard 2.73 FloSoft-Edition
© by Paul Baecher & Felix Gonschorek (www.thwboard.de)

Anpassungen des Forums
© by Flo-Soft (www.flo-soft.de)

Sie sind Besucher: