in textdatei speichern
-
hi!
ich will daten in eine textdatei speichern zu einer bestimmten zeit..ich hab schon was gemacht:
void __fastcall Save::Timer2Timer(TObject *Sender) { dt = dt.CurrentDate(); AnsiString as = Application->ExeName; as.Delete(as.Length()-1, 4); as += "Logdatei"; as += dt.DateString(); as += ".dat"; ListBox2->Items->SaveToFile(as); }
ich hab folgendes problem:
wenn die datei schon existiert und in ihr schon daten stehen..dann werden diese überschrieben...wie mach ich das das der text einfach angehängt wird...?
aber in die selbe datei!ciao
-
Schau dir mal TFileStream an oder noch besser: TStringList, und da besonders die Methoden LoadFromFile(), AddStrings() und SaveToFile(). Wenn es ein großes File ist, solltest du aber doch lieber mit TFileStream arbeiten.
-
was muss ich bei mir da ändern das er den text attached?
in c gibs ja auch sowas:
f1=fopen("C:\\Dateien\\Log.txt",at);
-
Anleitung für den Noob:
1. Erstelle eine neue TStringList
2. Lade die Datei in die StringList
3. Benutze die Methoden von TStringList, um neue Strings in die Liste aufzunehmen
4. Speichere die StringList wieder
5. Gib den Speicher wieder frei, den das TStringList-Objekt belegt hatte
-
hab gedacht das geht einfacher *g*
-
dt = dt.CurrentDate();
AnsiString as = Application->ExeName;
as.Delete(as.Length()-3, 4);
as += "_LOG_";
as += dt.DateString();
as += ".txt";TStringList* theList = new TStringList();
theList->Add(text->Text);
theList->SaveToFile(as);
delete theList;Mode: app
Öffnet eine Datei für Schreiboperationen. Falls die Datei bereits existiert, wird sie
automatisch erzeugt. Neue Daten werden immer am Ende der Datei geschriebenwie mach ich das dazu?
-
Ich sag nichts, solange du meine Anweisungen nicht befolgt hast.
*Da kriegt man ja die Motten*
-
ich check das nimma ganz...scheiß uhrzeit *g*
kannst du mir auf die sprünge helfen?cu
-
Hallo,
du hast WebFritzi "Anleitung für den Noob"
Punkt 2 ausgelassen ztztztztztztmfg
VergissEs
-
matrin_ schrieb:
hab gedacht das geht einfacher *g*
Ich kann es mir beim besten Willen nicht einfacher vorstellen!
-
Du hast recht Martin, es gibt sowas wie "at"
Schau mal im BCB Hilfe unter "File".
Da wird dir eine liste angegeben, mit welchen Attributen du eine Datei öffnen kannst...
Ich habe sie leider nicht im Kopf und bin grad auf der Arbeit..wenn du nicht weiterkommst, schreib einfach nochmal.@WebFritzi : ganz schön arrogant meinst du nicht ?
Was denkst du wozu diese Forum da ist ? Genau, um Leuten zu helfen, die keine Ahnung haben!
Deine Lösung ist nicht einmal richitg :Denn wenn du so wird die Datei ebenso überschrieben
Bleiben wir doch einfach alle mal freundlich
-
maYer schrieb:
@WebFritzi : ganz schön arrogant meinst du nicht ?
Was ist daran arrogant eine Step-By-Step Anleitung zu posten?
-junix
-
ListBox2->Items->SaveToFile(as);
irgendwie weiß ich net recht wo ich das finde....kannst du bei dir mal schauen bitte?
wär nett danke...für deine hilfe!cu matrin_
-
ich will euch mal sagen: TStringList ist gar nciht so toll wie hier der Eindruck erweckt wird.
TStringList verursacht auf verschiedenen Systemen wirre Speicher und Lade-Fehler. Mal kann hier die Datei mt LoadFromFile nicht geladen werden oder auf einen anderen Rechner funktioniert SaveToFile nicht.Und warum sollte man TStringLIst nehmen. es gibt doch so schöne C++ Routinen dafür:
#include <vcl.h> #pragma hdrstop #include "Unit1.h" //--------------------------------------------------------------------------- #pragma package(smart_init) #pragma resource "*.dfm" TForm1 *Form1; #include <fstream> using namespace std; //--------------------------------------------------------------------------- __fastcall TForm1::TForm1(TComponent* Owner) : TForm(Owner) { } //--------------------------------------------------------------------------- void AddToFile(char* FileName, char* Text) { ofstream file(FileName, ios_base::app); if(file.is_open()) file<< Text <<endl; file.close(); } //--------------------------------------------------------------------------- void __fastcall TForm1::Button1Click(TObject *Sender) { AddToFile("C:\\test.txt", "Hallo") ; } //---------------------------------------------------------------------------
Das geht mit TStringList auch nicht kürzer.
-
Ich halte es sowieso für grundsätzlich falsch die TStringList als lade- und speicher- Klasse zu missbrauchen. Wenn es eben geht sollte man die VCL-Klassen eh meiden. Und das geht in allen Fällen bis aus die, in denen die Daten direkt visualisert werden sollen wie bei TMemo oder TReichEdit...
-
ich hab da:
da bekomme ich den string.....die funktionen: getkeynametext und TextToKey hab ich weggelassen...
void __fastcall TZeichenForm::Zeichen(TMessage &Message) { char Key[41]; AnsiString as; GetKeyNameText(Message.LParam, Key, 41); if(ListBox1->Items->Count == 0) { as = TextToKey("", Key); ListBox1->Items->Add(as); } else if(strcmp(Key, "EINGABE") == 0) { ListBox1->Items->Add("\0"); ++Zeilen; } else { as = TextToKey(ListBox1->Items->Strings[Zeilen], Key); ListBox1->Items->Strings[Zeilen] = as; } } // ich will den text alle 10 sekunden in die textdatei speichern...... void __fastcall TZeichenForm::Timer1Timer(TObject *Sender) { dt = dt.CurrentDate(); AnsiString as = Application->ExeName; as.Delete(as.Length()-3, 4); as += "_LOG_"; as += dt.DateString(); as += ".txt"; ListBox1->Items->SaveToFile(as); }
wie kann ich da das in die C++ Routine speichern in textdatei ändern:
ofstream file..........danke no mal!!!!
cu
-
AndreasW schrieb:
Ich halte es sowieso für grundsätzlich falsch die TStringList als lade- und speicher- Klasse zu missbrauchen. Wenn es eben geht sollte man die VCL-Klassen eh meiden. Und das geht in allen Fällen bis aus die, in denen die Daten direkt visualisert werden sollen wie bei TMemo oder TReichEdit...
hehe und sowas sagt ein Mod im Borland C++ Builder (VCL/CLX) Forum
wo es ja über VCL geht.OK der BCB stirbt, also auf längerer Sicht, muss man sich wiso von der VCL trennen, also nichts für ungut
mfg
VergissEs
-
VergissEs schrieb:
hehe und sowas sagt ein Mod im Borland C++ Builder (VCL/CLX) Forum
wo es ja über VCL geht.Wieso nicht? Wenns doch richtig ist? (und zwar durch mehrerlei Aspekte) Nur weil man hier Mod ist, heisst das nicht, dass man der Materie nicht kritisch gegenüber stehen darf...
-junix
-
hier überschreibe ich immer die textdatei.....
was soll ich nun nehmen?*g*
kann mir jemand helfen?richtig is es no nicht...will doch die textdatei nicht überschreiben!!!
cu
-
@matrin_:
entweder arbeitest du an uns oder wir an dir vorbei.
Du hast doch gesagt, dass du neuen Text an einer Datei anhängen willst. Wo bitte ist der Text der in die Datei soll.Was du machst ist eine Dateiumbennenungsorgie. Nicht aber das, was du im ersten Beitrag haben wolltest.
Sag bitte konkret welchen Text du wo hin haben willst.
ich könnte auch sagen: Borland C++ Builder (VCL/CLX) Forum
Warum nicht eine Sprache verwenden anstatt einer angeschlossenen Bibliothek.
Ihr behauptet in C++ zu schreiben. Ihr schreibt aber nur "mit" der VCL.
Wenn euch jemand die VCL wegnimmt bekommt ihr doch kein richtiges Programm mehr am laufen.nix für ungut, aber manchmal muss man auch die Wahrheit vertragen können
Ich hab auch lange gebraucht dass runterzuschlucken...