|
You last visited: Today at 04:51
Advertisement
C# Array Inhalt
Discussion on C# Array Inhalt within the .NET Languages forum part of the Coders Den category.
10/27/2013, 22:05
|
#1
|
elite*gold: 206
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.
|
|
|
10/27/2013, 22:40
|
#2
|
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.
|
|
|
10/27/2013, 23:10
|
#3
|
elite*gold: 206
Join Date: Aug 2009
Posts: 9,154
Received Thanks: 1,156
|
Quote:
Originally Posted by snow911
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#.
|
|
|
10/27/2013, 23:53
|
#4
|
elite*gold: 666
Join Date: Apr 2011
Posts: 5,811
Received Thanks: 2,417
|
|
|
|
10/28/2013, 00:34
|
#5
|
elite*gold: 206
Join Date: Aug 2009
Posts: 9,154
Received Thanks: 1,156
|
Quote:
Originally Posted by Sycophantic
|
So wie ich das verstanden habe, bindet er 2 Arrays zu einem?
Bringt mich nicht relativ weit, da ich nur ein Array habe.
|
|
|
10/28/2013, 00:42
|
#6
|
elite*gold: 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.
|
|
|
10/28/2013, 00:53
|
#7
|
elite*gold: 206
Join Date: Aug 2009
Posts: 9,154
Received Thanks: 1,156
|
Quote:
Originally Posted by Shawak
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.
|
|
|
10/28/2013, 00:55
|
#8
|
elite*gold: 2932
Join Date: Oct 2009
Posts: 6,966
Received Thanks: 1,097
|
benutze eine list(of type) das ist die managed alternative zu arrays
|
|
|
10/28/2013, 01:24
|
#9
|
elite*gold: 206
Join Date: Aug 2009
Posts: 9,154
Received Thanks: 1,156
|
Quote:
Originally Posted by tolio
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.
|
|
|
10/28/2013, 01:37
|
#10
|
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.
|
|
|
10/28/2013, 01:45
|
#11
|
elite*gold: 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>();
|
|
|
10/28/2013, 02:19
|
#12
|
elite*gold: 206
Join Date: Aug 2009
Posts: 9,154
Received Thanks: 1,156
|
Quote:
Originally Posted by Shawak
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
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.
|
|
|
|
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.
|
|