videos/musik/pic's in strings speichern?



  • Hallo,

    für mein Projekt (eine Filmdatenbank) benötige ich eure Hilfe :).
    Das Problem ist folgendes:
    Wenn ich den Namen eines Filmes eingebe, möchte ich noch einen passenden Trailer speichern. Jedoch, wie mache ich das?
    Ich weiß einfach nicht wie ich es so hinbekomme, dass der Trailer, bzw. der Pfad, wo sich der Trailer befindet, gespeichert wird.
    Kann mir da jemand ein kleines Beispiel zeigen?

    MfG



  • Ich habe vergessen zu erwaehnen, dass ich den Borland 5.02 C++ Compiler benutze...



  • string pfad_zu_trailer = "C:\\Trailer\\movie1.mpg";
    

    So, zum Beispiel?



  • Wenn du den Namen eines Films (String!) speichern kannst, dann wirst du sicher auch den Pfad einer Video-Datei (String!) speichern können. Ansonsten gib doch mal ein Beispiel, wie du bislang Strings in deiner Datenbank speicherst.



  • OT: Hast Du mal drüber nachgedacht, eine aktuellere IDE einzusetzen? Der Compiler und die Klassenbibliothek (OWL) sind vor knapp 10 Jahren vom Markt verschwunden...



  • Hi,
    ok, das mit dem speichern habe ich hinbekommen...hätt' ich eigtl. auch selbst draufkommen können 😃
    Nunja...jetzt habe ich aber trotzdem noch Fragen:

    - wenn ich mehrere Trailer im String speichere, wie kann ich dann auswählen, welchen Trailer ich von denen im String gespeicherten abspielen kann? - geht das überhaupt oder sollte ich mir vll. lieber eine andere Möglichkeit zur Speicherung/Wiedergabe überlegen?

    - und wie kann ich videos abspielen, wenn sie sich im string befinden oder in einem anderen verzeichnis als das programm selber?

    MfG

    @Joe_M: nein, ich muss mit Borland programmieren..."wir" sind die letzte Klasse bei uns auf der Schule, die noch damit programmiert, danach wird (glaube ich) mit nem Programm von MS gearbeitet.



  • moped schrieb:

    Hi,
    - wenn ich mehrere Trailer im String speichere, wie kann ich dann auswählen, welchen Trailer ich von denen im String gespeicherten abspielen kann? - geht das überhaupt oder sollte ich mir vll. lieber eine andere Möglichkeit zur Speicherung/Wiedergabe überlegen?

    Mehrere Trailer könntest du auch in einem Feld unterbringen. Du musst dir nur ein Trennzeichen überlegen (z.B. Semikolon) und den String dann dementsprechend trennen, wenn du ihn auswertest.

    moped schrieb:

    - und wie kann ich videos abspielen, wenn sie sich im string befinden oder in einem anderen verzeichnis als das programm selber?

    Wie spielst du denn Videos ab, wenn sie sich im gleichen Verzeichnis wie dein Programm befinden?



  • [quote="_matze"

    Mehrere Trailer könntest du auch in einem Feld unterbringen. Du musst dir nur ein Trennzeichen überlegen (z.B. Semikolon) und den String dann dementsprechend trennen, wenn du ihn auswertest.
    [/quote]
    Könntest du mir ein Beispiel geben, wie das dann auszusehen hat?

    _matze schrieb:

    Wie spielst du denn Videos ab, wenn sie sich im gleichen Verzeichnis wie dein Programm befinden?

    Ich kenne es nur mit : system("datei.endung");
    Ich hab's auch mal mit einem String versucht:
    system((Mname).c_str()); //Mname=string, wo der Trailer sich befindet
    aber leider geht das damit nicht.



  • _matze schrieb:

    Mehrere Trailer könntest du auch in einem Feld unterbringen. Du musst dir nur ein Trennzeichen überlegen (z.B. Semikolon) und den String dann dementsprechend trennen, wenn du ihn auswertest.

    Könntest du mir ein Beispiel geben, wie das dann auszusehen hat?

    _matze schrieb:

    Wie spielst du denn Videos ab, wenn sie sich im gleichen Verzeichnis wie dein Programm befinden?

    Ich kenne es nur mit : system("datei.endung");
    Ich hab's auch mal mit einem String versucht:
    system((Mname).c_str()); //Mname=string, wo der Trailer sich befindet
    aber leider geht das damit nicht.



  • kann mir jemand helfen?



  • Ein Beispiel wie du mit Feldern arbeitest? Also wenn du schon mit Strings arbeitest gehen wir mal stark davon aus das du wissen solltest wie man mit Feldern arbeitet.Hier jedoch trotzdem ein Beispiel

    std::string meine_filme[5];
    
    for(int i = 0; i<5;i++)//Schleife zum einlesen von 5 Filmen
    {
      std::cout<<"Geben sie die Pfade zu den Trailern ein:--> ";
      std::cin>>meine_filme[i];
    }
    
    //und schon hast du 5 Filmpfade in deinem Array von Strings
    

    Ich hoffe das ist das was du meinst?



  • moped schrieb:

    _matze schrieb:

    Mehrere Trailer könntest du auch in einem Feld unterbringen. Du musst dir nur ein Trennzeichen überlegen (z.B. Semikolon) und den String dann dementsprechend trennen, wenn du ihn auswertest.

    Könntest du mir ein Beispiel geben, wie das dann auszusehen hat?

    _matze schrieb:

    Wie spielst du denn Videos ab, wenn sie sich im gleichen Verzeichnis wie dein Programm befinden?

    Ich kenne es nur mit : system("datei.endung");
    Ich hab's auch mal mit einem String versucht:
    system((Mname).c_str()); //Mname=string, wo der Trailer sich befindet
    aber leider geht das damit nicht.

    Hi, danke, aber es geht mir eher um das oben genannte "Problem".
    Wie man Felder ein- und ausgibt weiß ich, nur wie ich das so ausgebe, dass Filmname und Trailer zusammen ausgegeben werden (die auch zusammen gehören) weiß ich nicht....

    Mit einem String hätte ich's so gelöst....aber da bleibt dann das Problem mit der Wiedergabe.

    while (!datei.eof())
          {
    
          getline(datei, Fname);
          cout<<"\n\nFilm:\t"<<Fname;
          getline(datei, Mname);
          cout<<"\n\nTrailer:  "<<Mname;
    
          }
          datei.close();
    

    Ich habe eine Möglichkeit zur Wiedergabe im Kopf, die, so denke ich, am einfachsten wäre: Pfad eingeben und wiedergeben.
    Aber ich weiß nicht wie ich so das Video starten kann.



  • also ein bisschen google gequält und mann erhelt das ergebnis:)
    du kannst musik auch über die Commandozeile starten das würde dann so aussehen

    das direkt in die konsole eingeben(MIT den Gänsefüßchen)
    "C:\Programme\Windows Media Player\wmplayer" "Dein Pfad zu deinem Trailern+endung"

    das ganze kannst du dann über den systembefehl ausführen lassen

    EDIT: noch ein nützlicher link:
    http://www.mydigitallife.info/2006/10/31/control-windows-media-player-behaviour-with-command-line-parameters/de/



  • Ah, danke 🙂
    Ich habs etwas anders gelöst 😉
    Nun habe ich aber wieder was Neues....

    Also hier ist die Eingabe:

    void Eingabe()
    {
    datei.open (pfad.c_str(), ios::app);
    
          cout<<"Wieviele Filme moechten Sie hinzufuegen?\t";
          cin>>x;
    
          for (int i=0; i<x; i++)
          {
          cout<<"Name des Filmes:\t";
          getline(cin, Fname);
          datei<<Fname<<endl;
    
          cout<<"Trailer:\t";
          getline(cin, Mname);
          datei<<Mname<<endl;
          }
    }
    

    Und hier die Ausgabe:

    void Ausgabe()
    {
    datei.open(pfad.c_str(), ios::in);
    
          if (!datei) cout<<"Fehler";
    
          cout<<"\nFolgende Filme befinden sich in der Datenbank:\n\n";
    
          while (!datei.eof())
          {
    
          getline(datei, Fname);
          cout<<"\n\nFilmname: "<<Fname;
    
          getline(datei, Mname);
          cout<<"\nTrailer:  "<<Mname;
    
          }
    
          datei.close();
    }
    

    Das Problem ist, dass "Filmname" und "Trailer" am ende nochmal ausgegeben werden, obwohl da nichts drin steht. Das liegt ja (vermutlich) an dem //endl// bei der Eingabe, aber mache ich das weg, dann wird nicht mehr der komplette string ausgegeben....jemand 'ne Idee, was ich da machen könnte?



  • moped schrieb:

    Hier die Eingabe, wie sie bei mir ist...oben habe ich einen Teil vergessen...

    void Eingabe()
    {
    int druck;
    
          datei.open (pfad.c_str(), ios::app);
    
          cout<<"Wieviele Filme moechten Sie hinzufuegen?\t";
          cin>>x;
    
          for (int i=0; i<x; i++)
          {
          cout<<"Name des Filmes:\t";
          getline(cin, Fname);
          datei<<Fname<<endl;
    
          cout<<"Trailer:\t";
          getline(cin, Mname);
          datei<<Mname<<endl;
          }
    
          while(100)
          {
          druck=getch();
          if (druck==13)
          {
          break;
          datei.close(); }
          }
          cout<<"\n\n\n"<<endl;
    

    Ich habe allerdings noch eine Frage:
    Ist es möglich einen Browser aufzurufen und dabei direkt auch eine Suchanfrage auf der aufgerufenen Seite zu starten?

    Beispiel:

    cout<<"Geben Sie den zu suchenden Film ein:\t";
          cin>>movie;
    
    		ShellExecute(NULL,"open","http://www.film.de/search",NULL,NULL,SW_SHOW);
    

    Wenn ich dann dort eingebe "Spiderman" dann soll die Seite film.de aufgerufen werden und es soll nach "Spiderman" auf dieser Seite gesucht werden. Geht das? Falls ja, wie?



  • [quote="moped"]

    moped schrieb:

    Ist es möglich einen Browser aufzurufen und dabei direkt auch eine Suchanfrage auf der aufgerufenen Seite zu starten?

    Na ja, du kannst ja zumindest per Konsole den Browser deiner Wahl mit Webadresse als Kommandozeilenparameter aufrufen.

    //startet den IE und ruft Google auf:
    c:\program files\internet explorer\iexplore.exe www.google.de
    

    Eine Suchanfrage könntest du bestimmt per URL-Variablen starten (also mit "?" und "&").

    Aber ich schätze, da gibt's programmtechnisch bessere Alternativen, keine Ahnung.



  • Ja, wie man den Browser aufruft weiß ich....

    ShellExecute(NULL,"open","http://www.film.de/search",NULL,NULL,SW_SHOW);
    

    Würde mich freuen, wenn mir jemand die Fragen aus der vorherigen Post beantworten könnte.



  • das problem ist !datei.eof() schöner wäre sowas wie

    while(getline(datei,string))
    {
      //tu was
    }
    

    mit eof() ließt er immer noch ein letztes mal etwas ein



  • moped schrieb:

    Ja, wie man den Browser aufruft weiß ich....

    ShellExecute(NULL,"open","http://www.film.de/search",NULL,NULL,SW_SHOW);
    

    Würde mich freuen, wenn mir jemand die Fragen aus der vorherigen Post beantworten könnte.

    Deine Frage war ja auch, wie man direkt eine Suchanfrage starten kann. Und das geht (zumindest bei einigen Webseiten), wie erwähnt, per URL.

    //ruft Google auf und sucht nach "HelloWorld"
    iexplore.exe http://www.google/search?q=HelloWorld
    

    Wenn du das schon wusstest, warum fragst du dann?



  • _matze schrieb:

    moped schrieb:

    Ja, wie man den Browser aufruft weiß ich....

    ShellExecute(NULL,"open","http://www.film.de/search",NULL,NULL,SW_SHOW);
    

    Würde mich freuen, wenn mir jemand die Fragen aus der vorherigen Post beantworten könnte.

    Deine Frage war ja auch, wie man direkt eine Suchanfrage starten kann. Und das geht (zumindest bei einigen Webseiten), wie erwähnt, per URL.

    //ruft Google auf und sucht nach "HelloWorld"
    iexplore.exe http://www.google/search?q=HelloWorld
    

    Wenn du das schon wusstest, warum fragst du dann?

    Sorry...habe das mit ?/& übersehen....hab das jetzt gelöst 🙂

    Bleibt jetzt das Problem mit !datei.eof())

    while(getline(datei,string))
    {
      //tu was
    }
    

    Mein Lehrer meint, es wäre besser es weiterhin mit !datei.eof()) zu lösen...die lösung wollte er aber nicht preisgeben. Es scheint da eine Möglichkeit mit gotoxy zu geben...


Anmelden zum Antworten