webForumDet fria alternativet

Snabb hjälp c#

.NETur .NET

30 svar · 2 605 visningar · startad av Gildebrand

GildebrandMedlem sedan juni 2009920 inlägg
#1

Hejsan!

Skulle behöva veta hur man gör en grej i c#. Hur gör man när man måste sätta "" runt en string?

Såhär ser "koden" ut:
axVLCPlugin21.playlist.add(ofd)

Måste alltså få dit "" runt ofd, men hur gör man det så att det funkar?

@ndersMedlem sedan juni 200032 969 inlägg
#2

Uhm, man sätter citationstecken runt strängen? :o

axVLCPlugin21.playlist.add("ofd")

Känns som att det saknas lite information i ditt inlägg...

LedelMedlem sedan dec. 2004736 inlägg
#3

För att se om jag förstår dig rätt:
ofd är en variabel som innehåller säg: Test

Du vill att .playlist ska bli addad med "Test" och inte bara Test?

I så fall:
axVLCPlugin21.playlist.add(String.Formt("\"{0}\"", ofd));

OveRRidEMedlem sedan feb. 200112 078 inlägg
#4

Vad exakt menar du? Behöver du ha två apostofer på varje sida, så att strängen blir ""innehållet""?

Isåfall blir det väl typ som enklast:

string var = "\"\"" + ofd + "\"\"";
axVLCPlugin21.playlist.add(var);

/red. Eller som Redel skrev, med String.Format().

GildebrandMedlem sedan juni 2009920 inlägg
#5

@nders, nej för då refererar man ju inte till strängen, utan då blir det bara text.
Jag måste ha apostofer runt strängen för att det ska funka.

det är tänkt så att man kan skriva såhär:
axVLCPlugin21.playlist.add("c:/godis.wmv");

Men jag vill byta ut c:/godis.wmv mot min sträng.

voigtann1Medlem sedan juni 20019 519 inlägg
#6

Det objekt(string) som innehåller c:\goid.wmv sätter du in som en parameter i din lista:

string filePath;
filePath = "c:\godis.wmv";
axVLCPlugin21.playlist.add(filePath);

Skulle behöva veta hur man gör en grej i c#. Hur gör man när man måste sätta "" runt en string?

Varför skulle du behöva det? Kör add en eval liknande metod?

GildebrandMedlem sedan juni 2009920 inlägg
#7

utan "" runt stringen:

System.Windows.Forms.AxHost.InvalidActiveXStateException was unhandled
Message=Exception of type 'System.Windows.Forms.AxHost+InvalidActiveXStateException' was thrown.
Source=AxInterop.AXVLC
StackTrace:
at AxAXVLC.AxVLCPlugin2.get_playlist()
at WindowsFormsApplication11.Form1..ctor() in Z:\VS2010Projects\GPIO\WindowsFormsApplication11\WindowsFormsApplication11\Form1.cs:line 21
at WindowsFormsApplication11.Program.Main() in Z:\VS2010Projects\GPIO\WindowsFormsApplication11\WindowsFormsApplication11\Program.cs:line 17
at System.AppDomain._nExecuteAssembly(Assembly assembly, String[] args)
at System.AppDomain.ExecuteAssembly(String assemblyFile, Evidence assemblySecurity, String[] args)
at Microsoft.VisualStudio.HostingProcess.HostProc.RunUsersAssembly()
at System.Threading.ThreadHelper.ThreadStart_Context(Object state)
at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state)
at System.Threading.ThreadHelper.ThreadStart()
InnerException:

nitro2k01Medlem sedan aug. 20039 342 inlägg
#8

Är sökvägen du skickar in giltig?
c:/godis.wmv är normalt inte vad man ska ange eftersom Windows normalt använder backslash.
c:\godis.wmv kan bör du inte ang heller eftersom backslash är ett escapetecken. Troligen måste du då ange c:\\godis.wmv. Särskilt illa är det om \ följs av t ex n, r eller t då får utt tecken som inte alls hör hemma i en sökväg. (\n och \r radbrytningstecken, \t=tabbtecken)

@ndersMedlem sedan juni 200032 969 inlägg
#9

Gildebrand skrev:

@nders, nej för då refererar man ju inte till strängen, utan då blir det bara text.

En text är en sträng är en text.

Frågan var otydlig, och som man frågar får man svar. :)

GildebrandMedlem sedan juni 2009920 inlägg
#10

Men så här då.

Råkade skriva att strängen hette ofd, fast den heter egentligen filename. Spelar egentligen ingen roll.

string filename = ofd.FileName;

Hur gör jag om jag vill lägga till en apostrof på vardera sida om ofd.FileName? Måste lära mig alla sånna här grejjer :

@ndersMedlem sedan juni 200032 969 inlägg
#11

Då borde detta funka:

string filename = "\"" + ofd.FileName + "\"";
GildebrandMedlem sedan juni 2009920 inlägg
#12

\ betyder alltså att man säger åt koden att hoppa över tecknet efter?

det borde nog funka med det @anders :)

Men nu har jag ett litet annat problem.

  OpenFileDialog ofd = new OpenFileDialog();
            if (ofd.ShowDialog() == DialogResult.OK)
            {
                string filename = "\"" + ofd.FileName + "\"";
            }

Så ser koden ut.

Men den gillar inte när jag lägger

                axVLCPlugin21.playlist.add("c:/wildlife.wmv");

inom if-satsen, efter string filename.

Blir inget fel vid bygget, men när jag kör får jag följande

Exception of type 'System.Windows.Forms.AxHost+InvalidActiveXStateException' was thrown.
matlinMedlem sedan okt. 2006224 inlägg
#13

Gildebrand skrev:

Men den gillar inte när jag lägger

                axVLCPlugin21.playlist.add("c:/wildlife.wmv");

inom if-satsen, efter string filename.

Blir inget fel vid bygget, men när jag kör får jag följande

Exception of type 'System.Windows.Forms.AxHost+InvalidActiveXStateException' was thrown.

"C:/wildlife.wmv" är inte en giltig sökväg. Borde vara "C:\wildlife.wmv". Och funkar inte det så prova "C:\\wildlife.wmv".

GildebrandMedlem sedan juni 2009920 inlägg
#14

Har provat det men gör ingen skillnad. Funkar som sagt om jag inte har koden i if-satsen.

LedelMedlem sedan dec. 2004736 inlägg
#15

Det jag kan tänka är att du måste skriva:
...add("\"C:\\wildlife.wmv\"");

eftersom att du annars inte får med "" runt strängen som skickas till funktionen.

GildebrandMedlem sedan juni 2009920 inlägg
#16

Inget verkar dessvärre funka :(
Är inte akut att få det att fungera, så jag tror jag får undersöka och fundera lite mer.

Men jag har en fråga till. Jag använder alltså VLC ActiveX control i mitt WinForms projekt, och nu vill jag hämta tillgängliga subtitles.

Om jag vill bestämma att jag ska visa undertext nummer 1, så skriver jag bara axVLCPlugin21.video.subtitle=1;

Men man ska kunna hämta subtitles också, alltså vilka språk som är tillgängliga, och vilket nummer de har. Jag skulle vilja göra det och skicka in i en listbox. Jag har provat några olika saker, men lyckas inte.

vlc.video.subtitle: (supported in vlc version > 0.8.6a) get and set the subtitle track to show on the video screen.
The property takes an integer as input value [1..65535]. If subtitle track is set to 0, the subtitles will be disabled.
If set to a value outside the current subtitle tracks range, then it will return -1 and display an error message.

nitro2k01Medlem sedan aug. 20039 342 inlägg
#17

Prova att ange filnamnet som file://c:/wildlife.wmv eller file://c/wildlife.wmv

GildebrandMedlem sedan juni 2009920 inlägg
#18

Hjälpte inte!

Det här är så jäkla konstigt. Tror inte problemet ligger i själva kodsnutten i sig.

axVLCPlugin21.playlist.add("c:\\wildlife.wmv");

funkar utmärkt under button1_click, men inte under public form1();
Detta driva mig galen x(

SPiNMedlem sedan mars 20007 896 inlägg
#19
OpenFileDialog ofd = new OpenFileDialog();
if (ofd.ShowDialog() == DialogResult.OK)
{
    axVLCPlugin21.playlist.add(ofd.FileName);
}

Fungerar inte, menar du? Hur har du skapa instansen för 'axVLCPlugin21'? Vad ger ofd.FileName tillbaka/vad innehåller ofd.FileName?

GildebrandMedlem sedan juni 2009920 inlägg
#20

Nu har jag lagt det under en button istället, och då funkar det som det ska. Vet egentligen inte varför jag ville att det skulle köras med formuläret.

Men någon som har en idé om min andra fråga?

137 ms totalt · 3 externa anrop · v20260731065814-full.363dfaf6
0 ms — hämta forumlista (cache)
0 ms — hämta statistik (cache)
134 ms — hämta tråd, inlägg och bilagor (db)