Zum Inhalt springen

[C++.NET] Dateioperationen


Empfohlene Beiträge

Geschrieben

ifstream f("src/"+this->Job->Text+".rcs");

error C2664: 'std::basic_ifstream<_Elem,_Traits>::basic_ifstream(const char *,std::ios_base::openmode,int)': Konvertierung des Parameters 1 von 'System::String ^' in 'const char *' nicht möglich

diese fehlermeldung bekomme ich leider wegen dem ifstream...

fstream ist included

kannst mir vielleicht mal jemand sagen, was das bedeutet?

Geschrieben

Warum benutzt du fstream in einem Managed-C++-Projekt? Das .NET-Framework bietet doch eigene Klassen für Dateioperationen.

Und warum gräbst du dazu einen fast vier Jahre alten Thread aus?

Geschrieben

1.) ich bin ein absoluter anfänger bezüglich WindowsForms und Dateihandling in C++

darum keine ahnung, mit welchen befehlen ich arbeiten soll.

2.) ich grabe einen 4 jahre alten thread aus, weil ich die suche benutze und mir das alter egal ist

Geschrieben
1.) ich bin ein absoluter anfänger bezüglich WindowsForms und Dateihandling in C++

darum keine ahnung, mit welchen befehlen ich arbeiten soll.

Was du da hast, ist aber kein "echtes" C++, sondern C++.NET.

Ich trenne das mal ab und schiebe es ins richtige Forum.

Geschrieben

also ich bin immer noch nicht weiter gekommen...habe das komplette dateihandling gelöscht und will nochmal von vorne anfangen.

ich brauche folgende befehle:

1.) datei öffnen (fopen?)

2.) zeile n lesen

3.) datei schließen (fclose?)

wäre super wenn ihr mir mal helfen könntet

Geschrieben

ich habe jetzt folgendes probiert:

FILE *datei;

datei = fopen("src/"+this->Job->Text+".rcs","r");

fclose(datei);

dabei bekomme ich folgende fehlermeldung:

error C2664: 'fopen': Konvertierung des Parameters 1 von 'System::String ^' in 'const char *' nicht möglich

den stört auf jeden fall dass ich den pfad dort zusammen baue...

darum habe ich das extern gemacht:

FILE *datei;

const char *pfad = "src/"+this->Job->Text+".rcs";

datei = fopen(pfad,"r");

dabei bekomme ich dann den fehler:

error C2440: 'Initialisierung': 'System::String ^' kann nicht in 'const char *' konvertiert werden

ich habe schon viel hin und her probiert, komme aber zu keiner lösung...vielleicht kan mir ja jemand helfen

Geschrieben

mit dem StreamReader hab ich die datei schonmal geöffnet bekommen...nur leider bekomme ich es jetzt nicht hin eine bestimmte zeile auszulesen...so ein mist aber auch

Geschrieben
mit dem StreamReader hab ich die datei schonmal geöffnet bekommen...nur leider bekomme ich es jetzt nicht hin eine bestimmte zeile auszulesen...so ein mist aber auch

So ein Beitrag hilft dir nicht weiter, es sei denn, du willst nur Frust ablassen. Dazu ist das Forum aber nicht da.

Denn bei "ich bekomme es nicht hin" kann dir niemand helfen. Das ist keine ausreichende Fehlerbeschreibung. Zeig, was du gemacht hast, und sag, was der Compiler dazu sagt.

Und lass das mit fopen ;)

Geschrieben

ok...ich muss zugeben, dass das einfach nur ein frustbeitrag war...aber naja...hab mir auch gedacht, dass mir vielleicht jemand den befehlt sagen könnte um eine einzelne zeile auszulesen...

in C# gibt es einen befehl ReadLine()

den gibt es leider in C++ nicht...oder ich finde ihn nur nicht

ich habe im moment:

String^ pfad = "src/"+this->Job->Text+".rcs";

FileStream^ datei = gcnew FileStream( pfad,FileMode::Open );

for(int i=0;i<stats.jlvl;i++) {

//this->comboBox1->Text = zeile i;

}

datei->Close();

was ist denn an fopen so schlimm?

Geschrieben
hab mir auch gedacht, dass mir vielleicht jemand den befehlt sagen könnte um eine einzelne zeile auszulesen...
Strenggenommen gibt es in dieser Sprache keine Befehle.

Zum komfortablen Auslesen brauchst du noch einen Reader:

FileStream^ datei = gcnew FileStream( pfad, FileMode::Open );
StreamReader^ reader = gcnew StreamReader( datei );
while( !reader->EndOfStream )
{
Console::WriteLine( reader->ReadLine() );
}[/code]

was ist denn an fopen so schlimm?
Du solltest bei deinem Kenntnisstand nicht auch noch unterschiedliche Sprachen durcheinanderwürfeln, sonst verlierst du noch schneller den Überblick :)
Geschrieben

das dies mein erstes windows programm ist...könntest du mir vielleicht verraten, was ich machen muss um die exe ans laufen zu bekommen?

als einzigstes include habe ich "string"

wenn ich das programm verschicken bekommen diese personen fehlermeldungen wie:

"Die Anwendung konnte nicht richtig initalisiert werden (0xc0000135). Klicken Sie auf "OK", um die Anwendung zu beenden."

oder:

"Diese Anwendung konnte nicht gestartet werden, weil die Anwendungskonfiguration nicht korrekt ist. Zur Problembehebung sollten Sie die Anwendung neu installieren."

einfach eine kurze anleitung wäre super ;)

Geschrieben

Da dein Programm ein .NET-Programm ist, muss auf einem Rechner, auf dem das Programm ausgeführt werden soll, das passende .NET Framework (in deinem Fall Version 2.0) installiert sein. Ohne geht's nicht.

Geschrieben

und noch eine frage...man kann nicht wirklich einen string in ein int casten oder?

also es geht darum, dass ich eine datei öffne, zeile 0 bis n schrittweise abarbeiten will und in dieser datei stehen zeilenweise zahlen, die angeben, welcher wert incrementiert werden soll.

6

4

3

5

1

so zum beispiel.

dann soll wenn n=3 ist

wert6++

wert4++

wert3++

gemacht werden.

wie könnte ich das lösen?

Geschrieben


        FileStream^ datei = gcnew FileStream( pfad,FileMode::Open );

        StreamReader^ reader = gcnew StreamReader( datei );

        for(int i=0;i<stats.jlvl;i++) {

          ??? text = reader->ReadLine();

          if(text=='1') {

            bonus.Str++;

          }else if(text=='2') {

            bonus.Agi++;

          }

        }

        datei->Close();

      }

irgendwie muss ich den reader in ein format casten, welches ich mit chars, strings oder integers vergleichen kann...wenn mir einer sagen könnte, wie das geht wäre das schonmal super^^

Erstelle ein Benutzerkonto oder melde Dich an, um zu kommentieren

Du musst ein Benutzerkonto haben, um einen Kommentar verfassen zu können

Benutzerkonto erstellen

Neues Benutzerkonto für unsere Community erstellen. Es ist einfach!

Neues Benutzerkonto erstellen

Anmelden

Du hast bereits ein Benutzerkonto? Melde Dich hier an.

Jetzt anmelden

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...