Register for your free account! | Forgot your password?

Go Back   elitepvpers > Coders Den > .NET Languages
You last visited: Today at 04:51

  • Please register to post and access all features, it's quick, easy and FREE!

Advertisement



C# Array Inhalt

Discussion on C# Array Inhalt within the .NET Languages forum part of the Coders Den category.

Reply
 
Old   #1

 
.QaDusch's Avatar
 
elite*gold: 206
The Black Market: 528/0/0
Join Date: Aug 2009
Posts: 9,154
Received Thanks: 1,156
C# Array Inhalt

Hey zusammen,

da ich neu in C# bin, hab ich folgendes Problem;

Ich wähle MP3 Files per OpenFileDialog aus und die Pfade werden dann in ein Array eingefügt bzw gespeichert. Problem ist, wenn ich weitere Dateien auswähle, wird mein Array nicht addiert sondern einfach ersetzt. Bedeutet also, wenn ich später nur ein Lied auswähle, ist in meinem Array nur dieses eine Lied.

Nun meine Frage;

Wie bekomme ich es hin, das mein Array einfach addiert wird und nicht ersetzt?
Jeglicher Denkanstoß währe von Vorteil, eventuell auch eine andere Methode die files zu speichern.
.QaDusch is offline  
Old 10/27/2013, 22:40   #2

 
snow's Avatar
 
elite*gold: 724
Join Date: Mar 2011
Posts: 10,480
Received Thanks: 3,319
Zeig bitte deinen bisherigen Code, grundsätzlich solltest du die ausgewählten Dateien deinem Array via .Add hinzufügen können.
snow is offline  
Old 10/27/2013, 23:10   #3

 
.QaDusch's Avatar
 
elite*gold: 206
The Black Market: 528/0/0
Join Date: Aug 2009
Posts: 9,154
Received Thanks: 1,156
Quote:
Originally Posted by snow911 View Post
Zeig bitte deinen bisherigen Code, grundsätzlich solltest du die ausgewählten Dateien deinem Array via .Add hinzufügen können.
Code:
OpenFileDialog openFileDialog1 = new OpenFileDialog();
            WMPLib.IWMPPlaylist playlist = axWindowsMediaPlayer1.newPlaylist("myPlaylist", string.Empty);
            openFileDialog1.Multiselect = true;
            WMPLib.IWMPMedia media;
            openFileDialog1.Filter = "Musik|*.wma;*.wmv;*.mp3";
            DialogResult res = openFileDialog1.ShowDialog();
            if (res == DialogResult.OK)
            {

                files4 = openFileDialog1.SafeFileNames; // speicher nur die namen
                paths3 = openFileDialog1.FileNames; // speichert ganzen Pfad

                string[] array1 = paths3; // Verwende ich, um MP3 File zu speichern

                    for (int i1 = 0; i1 < files4.Length; i1++)
                    {
                        for (int i2 = 1; i2 <= 1; i2++)
                        {
                            listView1.Items.Add(new ListViewItem(new string[] { "0" + i2.ToString(), files4[i1], paths3[i1] }));

                        }
                        
                        }
                        foreach (string name in paths3)
                        {
                            media = axWindowsMediaPlayer1.newMedia(name);
                            playlist.appendItem(media);

                            axWindowsMediaPlayer1.currentPlaylist = playlist;
                            axWindowsMediaPlayer1.Ctlcontrols.play();
             
                        }

            }
So sieht mein Code aus.
Erst wähle ich die Lieder, diese kommen dann in array1.
array1 wird dann als Playlist verwendet. Adde ich aber neue Lieder, geht die alte Playlist verloren.
Wie gesagt, bin noch neuling in C#.
.QaDusch is offline  
Old 10/27/2013, 23:53   #4

 
Syc's Avatar
 
elite*gold: 666
Join Date: Apr 2011
Posts: 5,811
Received Thanks: 2,417
Syc is offline  
Old 10/28/2013, 00:34   #5

 
.QaDusch's Avatar
 
elite*gold: 206
The Black Market: 528/0/0
Join Date: Aug 2009
Posts: 9,154
Received Thanks: 1,156
Quote:
Originally Posted by Sycophantic View Post
So wie ich das verstanden habe, bindet er 2 Arrays zu einem?
Bringt mich nicht relativ weit, da ich nur ein Array habe.
.QaDusch is offline  
Old 10/28/2013, 00:42   #6



 
Shawak's Avatar
 
elite*gold: 0
The Black Market: 259/0/0
Join Date: Apr 2010
Posts: 10,291
Received Thanks: 3,611
Das könnte daran liegen, dass du deine Playlist immer neu definierst:

Code:
WMPLib.IWMPPlaylist playlist = axWindowsMediaPlayer1.newPlaylist("myPlaylist", string.Empty);
Du solltest mal versuchen diese global zu machen.
Shawak is offline  
Thanks
1 User
Old 10/28/2013, 00:53   #7

 
.QaDusch's Avatar
 
elite*gold: 206
The Black Market: 528/0/0
Join Date: Aug 2009
Posts: 9,154
Received Thanks: 1,156
Quote:
Originally Posted by Shawak View Post
Das könnte daran liegen, dass du deine Playlist immer neu definierst:

Code:
WMPLib.IWMPPlaylist playlist = axWindowsMediaPlayer1.newPlaylist("myPlaylist", string.Empty);
Du solltest mal versuchen diese global zu machen.
Kann also nicht daran liegen das meine Array liste immer neu zugeteilt wird?
Eventuell hast du ja einen Link wie man soetwas ähnliches Global setzt.
.QaDusch is offline  
Old 10/28/2013, 00:55   #8
 
tolio's Avatar
 
elite*gold: 2932
The Black Market: 169/1/0
Join Date: Oct 2009
Posts: 6,966
Received Thanks: 1,097
benutze eine list(of type) das ist die managed alternative zu arrays
tolio is offline  
Thanks
1 User
Old 10/28/2013, 01:24   #9

 
.QaDusch's Avatar
 
elite*gold: 206
The Black Market: 528/0/0
Join Date: Aug 2009
Posts: 9,154
Received Thanks: 1,156
Quote:
Originally Posted by tolio View Post
benutze eine list(of type) das ist die managed alternative zu arrays
Das habe ich im Internet auch angetroffen, mein Problem jedoch ist, das ich nicht weiß wie ich die auswählten Dateien vom OpenFileDialog einbinde bzw addiere.

Code:
List<Person> liste = new List<Person>();
    // generische Liste füllen
    Person pers1 = new Person("Meier", "Berlin");
    liste.Add(pers1);
    Person pers2 = new Person("Arnhold", "Köln");
    liste.Add(pers2);
So sieht der Code der Seite openbook aus. Ich möchte halt meine ausgewählten Files addieren und nicht Name und Wohnort.

Mein Ansatz war halt;

Code:
                               List<string> Pfade = new List<string>();
                Pfade.AddRange(openFileDialog1.FileNames);
Es wird auch alles in Pfade geschrieben, jedoch bleibt das Problem;
Es wird nicht addiert sondern eben überschrieben. Füge ich 2 neue Lieder ein, dann werden nur diese zwei abgespielt. Nur Add bringt nichts, da kommen Fehleranzeigen.
.QaDusch is offline  
Old 10/28/2013, 01:37   #10

 
snow's Avatar
 
elite*gold: 724
Join Date: Mar 2011
Posts: 10,480
Received Thanks: 3,319
Das Problem liegt hier nicht an AddRange, es liegt nach wie vor an deinem Gültigkeitsbereich.
Mit
Code:
WMPLib.IWMPPlaylist playlist = axWindowsMediaPlayer1.newPlaylist("myPlaylist", string.Empty);
erstellst du immer eine neue Playlist und setzt sie hier:
Code:
axWindowsMediaPlayer1.currentPlaylist = playlist;
.

Initialisiere einfach das currentPlaylist-Objekt im Konstruktor und füg dann in der foreach-Loop via .appendItem die media-Objekte hinzu.

Evtl. solltest du dir anschauen, wie das mit den Zuweisungen etc. funktioniert, bevor du dich an ein solches Projekt setzt.
snow is offline  
Thanks
1 User
Old 10/28/2013, 01:45   #11



 
Shawak's Avatar
 
elite*gold: 0
The Black Market: 259/0/0
Join Date: Apr 2010
Posts: 10,291
Received Thanks: 3,611
Du darfst die Variable auch nur einmal neu zuordnen, pack das mal in deinen Konstruktor und lösche es sonst überall:

Code:
 List<string> Pfade = new List<string>();
Shawak is offline  
Thanks
1 User
Old 10/28/2013, 02:19   #12

 
.QaDusch's Avatar
 
elite*gold: 206
The Black Market: 528/0/0
Join Date: Aug 2009
Posts: 9,154
Received Thanks: 1,156
Quote:
Originally Posted by Shawak View Post
Du darfst die Variable auch nur einmal neu zuordnen, pack das mal in deinen Konstruktor und lösche es sonst überall:

Code:
 List<string> Pfade = new List<string>();
Ohweh, ich danke dir.
Stimmt, bei jedem Klick und bei jedem openFileDialog schreibt der das neu.

Quote:
Originally Posted by snow911 View Post
Das Problem liegt hier nicht an AddRange, es liegt nach wie vor an deinem Gültigkeitsbereich.
Mit
Code:
WMPLib.IWMPPlaylist playlist = axWindowsMediaPlayer1.newPlaylist("myPlaylist", string.Empty);
erstellst du immer eine neue Playlist und setzt sie hier:
Code:
axWindowsMediaPlayer1.currentPlaylist = playlist;
.

Initialisiere einfach das currentPlaylist-Objekt im Konstruktor und füg dann in der foreach-Loop via .appendItem die media-Objekte hinzu.

Evtl. solltest du dir anschauen, wie das mit den Zuweisungen etc. funktioniert, bevor du dich an ein solches Projekt setzt.

Hat mir einen Denkanstoß gegeben, Shawak hat mir dann die Lösung gezeigt.
Ich danke euch.
.QaDusch is offline  
Reply


Similar Threads Similar Threads
[Java]Array vom Typ String > Inhalt ausgeben lassen
10/30/2012 - General Coding - 2 Replies
Ahoi epvp, String array= {"x", "y"}; Es handelt sich um diesen Array vom Typ String. Der befindet sich in Klasse "mitarbeiterSuche", allerdings will ich ihn in der Klasse "main" ausgeben. Woran kann das liegen? Eclipse sagt mir dauernd: "array cannot be resolved to a variable"
Array subvariable ohne inhalt
10/03/2012 - AutoIt - 7 Replies
Hi, ich hab mal ne kurze frage. Ich hab ein Array = $Statistik. Es wird durch ein _stringbetween gefüllt. Jedoch wird die subvariable "" von $Statistik nur beliebig gefüllt. D.h. 1-7 sind immer güfllt. Nummer ist entweder mit nem string gefüllt oder leer. - sind sozusagen auch immer voll. Das Problem ist, dass ich - in einem label ausgebe. Und da ja nicht immer belegt ist, gibts einen error. Ich lasse $Statistik schon durch Isarray überprüfen. Wie kann ich jetzt sagen, dass nur...
Array of bytes id
01/26/2012 - Kal Online - 4 Replies
Heyo i got a question about shophack the normal id is 3600370055005600BD but some server changed it how to get the new id ?
Array
06/18/2011 - AutoIt - 0 Replies
Array Fehler Ich habe hier mal wieder einen Fehler den ich nicht beheben kann #include "WebTcp.au3" #include <Array.au3> #Include <File.au3> TCPStartup() _AutoITObject_Startup()



All times are GMT +2. The time now is 04:51.


Powered by vBulletin®
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
SEO by vBSEO ©2011, Crawlability, Inc.
This site is protected by reCAPTCHA and the Google Privacy Policy and Terms of Service apply.

Support | Contact Us | FAQ | Advertising | Privacy Policy | Terms of Service | Abuse
Copyright ©2024 elitepvpers All Rights Reserved.