Fetstil Fetstil Kursiv Understrykning linje färgläggning tabellverk Punktlista Nummerlista Vänster Centrerat högerställt Utfyllt Länk Bild htmlmode
  • Forum & Blog
    • Forum - översikt
      • .Net
        • asp.net generellt
        • c#
        • vb.net
        • f#
        • silverlight
        • microsoft surface
        • visual studio .net
      • databaser
        • sql-server
        • databaser
        • access
        • mysql
      • mjukvara klient
        • datorer och komponenter
        • nätverk, lan/wan
        • operativsystem
        • programvaror
        • säkerhet, inställningar
        • windows server
        • allmänt
        • crystal reports
        • exchange/outlook
        • microsoft office
      • mjukvara server
        • active directory
        • biztalk
        • exchange
        • linux
        • sharepoint
        • webbservers
        • sql server
      • appar (win/mobil)
      • programspråk
        • c++
        • delphi
        • java
        • quick basic
        • visual basic
      • scripting
        • asp 3.0
        • flash actionscript
        • html css
        • javascript
        • php
        • regular expresssion
        • xml
      • spel och grafik
        • DirectX
        • Spel och grafik
      • ledning
        • Arkitektur
        • Systemutveckling
        • krav och test
        • projektledning
        • ledningsfrågor
      • vb-sektioner
        • activeX
        • windows api
        • elektronik
        • internet
        • komponenter
        • nätverk
        • operativsystem
      • övriga forum
        • arbete karriär
        • erbjuda uppdrag och tjänster
        • juridiska frågor
        • köp och sälj
        • matematik och fysik
        • intern information
        • skrivklåda
        • webb-operatörer
    • Posta inlägg i forumet
    • Chatta med andra
  • Konto
    • Medlemssida
    • Byta lösenord
    • Bli bonsumedlem
    • iMail
  • Material
    • Tips & tricks
    • Artiklar
    • Programarkiv
  • JOBB
  • Student
    • Studentlicenser
  • KONTAKT
    • Om pellesoft
    • Grundare
    • Kontakta oss
    • Annonsering
    • Partners
    • Felanmälan
  • Logga in

Hem / Forum översikt / inlägg

Posta nytt inlägg


Argument till Windows application

Postades av 2006-05-10 22:43:58 - Magnus Gustavsson, i forum c# (c-sharp), Tråden har 6 Kommentarer och lästs av 692 personer

Hej!

Jag har ett litet program som ska visa en textfil i en textbox. I stället för att använda någon öppna dialog eller nått annat sätt att välja fil så vill jag kunna skicka med sökvägen+filnamnet som ett argument (eller vad det kallas för) till mitt program.

typ Mittprogram.exe C:\Magnus\filen.txt

Hur fixar jag detta?

Så här ser koden ut nu.

private void ReadText()
}
  string TextFile;
  try
  {
     StreamReader sr = new StreamReader("C:\\Magnus\\filen.txt);
     TextFile = sr.ReadToEnd;
  {
     textbox1.Text = TextFile;
  }
  sr.Close();
  }
  catch (Exception e)
  {
     MessageBox.Show(e.Message);
  }
}


Dessutom så får jag inte med svenska tecken in i mitt program, men dessa finns i textfilen. Nån som har några tips.

Mvh Magnus


Svara

Sv: Argument till Windows application

Postades av 2006-05-11 00:32:56 - Robert Israelsson

Du kan skicka med parametrar till ditt program genom att modifiera main():
<code>
static void Main(string[] args)
{
cmdArgs=args;
Application.Run(new Form1());
}
</code>
Detta kräver som du ser att cmdArgs redan är deklarerat:
<code>
static string[] cmdArgs;
</code>
Därefter kan du använda startparametrarna vart som helst i din kod typ:
<code>
private void ReadText(string fileName)
{
System.IO.StreamReader sr = new System.IO.StreamReader(cmdArgs[0],System.Text.Encoding.GetEncoding("ISO-8859-1"));
this.textBox1.Text=sr.ReadToEnd();
}
</code>
Värt att notera i koden ovan är deklarationen av StreamReadern:
cmdArgs[0] som innebär att filen som skall öppnas hämtas från kommandoraden
System.Text.Encoding.GetEncoding("ISO-8859-1") gör att du får med dina svenska tecken på ett korrekt sätt.
Naturligtvis bör man inte använda cmdArgs[0] utan att först kontrollera att den finns:
<code>
private void Form1_Load(object sender, System.EventArgs e)
{
if(cmdArgs.Length>0)
{
ReadText(cmdArgs[0]);
}
else
{
this.label1.Text="";
}
}
</code>


Svara

Sv:Argument till Windows application

Postades av 2006-05-11 10:03:50 - Magnus Gustavsson

Tack så mycket!

Dock så får jag inte genom kompileringen pga "The name 'cmdArgs' does not exist in the current context." Alltså cmdArgs som finns med i
<code>
private void ReadText(string fileName)
{
System.IO.StreamReader sr = new System.IO.StreamReader(cmdArgs[0],System.Text.Encoding.GetEncoding("ISO-8859-1"));
this.textBox1.Text=sr.ReadToEnd();
}
</code>

Det har nog med deklarationen av att göra. Men vart lägger jag den? Den måste väl ligga i Main()
<code>
static string[] cmdArgs;
</code>

Mvh Magnus


Svara

Sv: Argument till Windows application

Postades av 2006-05-11 13:22:23 - Robert Israelsson

cmdArgs måste vara deklarerat utanför main() typ direkt efter:
<code>
public class Form1 : System.Windows.Forms.Form
{
</code>


Svara

Sv:Argument till Windows application

Postades av 2006-05-11 13:42:48 - Magnus Gustavsson

Hej igen!

Jag får inte till det. Kanske måste tillägga att jag kör Visual C# 2005 och är nybörjare på detta.

Så här ser det ut nu i Program.cs:
<code>
using System;
using System.Collections.Generic;
using System.Windows.Forms;
using System.IO;

namespace AlarmHelpText
{
public class Program
{
static string[] cmdArgs;

[STAThread]
static void Main(string[] args)
{
cmdArgs = args;
Application.EnableVisualStyles();
Application.SetCompatibleTextRenderingDefault(false);
Application.Run(new Form1());
}
}
}
</code>

I min Form1.cs ser det ut så här:
<code>
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
using System.IO;

namespace AlarmHelpText
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}

private void ReadText(string fileName)
{
string TextFile;

try
{
StreamReader sr = new StreamReader(cmdArgs[0], System.Text.Encoding.GetEncoding("ISO-8859-1"));

this.textBox1.Text = sr.ReadToEnd();

sr.Close();
}

catch (Exception e)
{
MessageBox.Show(e.Message);
}
}

private void button1_Click(object sender, EventArgs e)
{
ActiveForm.Close();
}

private void Form1_Load(object sender, EventArgs e)
{
// Här ska if-satsen in sen.
}
}
}
</code>

Alltså när jag deklarerar cmdArgs i Program.cs så hittar Form1.cs inte den. Vad är fel?

Mvh Magnus (börjar se suddigt nu ;)


Svara

Sv: Argument till Windows application

Postades av 2006-05-11 14:42:51 - Robert Israelsson

Den här varianten borde fungera...
Program.cs:
<code>
using System;
using System.Collections.Generic;
using System.Windows.Forms;
using System.IO;

namespace AlarmHelpText
{
public class Program
{
[STAThread]
static void Main(string[] args)
{
Application.EnableVisualStyles();
Application.SetCompatibleTextRenderingDefault(false);
Application.Run(new Form1(args));
}
}
}
</code>

I min Form1.cs ser det ut så här:
<code>
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
using System.IO;

namespace AlarmHelpText
{
public partial class Form1 : Form
{
static string[] cmdArgs;
public Form1(string[] args)
{
cmdArgs=args;
InitializeComponent();
}

private void ReadText(string fileName)
{
string TextFile;

try
{
StreamReader sr = new StreamReader(cmdArgs[0], System.Text.Encoding.GetEncoding("ISO-8859-1"));

this.textBox1.Text = sr.ReadToEnd();

sr.Close();
}

catch (Exception e)
{
MessageBox.Show(e.Message);
}
}

private void button1_Click(object sender, EventArgs e)
{
ActiveForm.Close();
}

private void Form1_Load(object sender, EventArgs e)
{
if(cmdArgs.Length>0){ this.ReadText(cmdArgs[0]); }
}
}
}
</code>


Svara

Sv:Argument till Windows application

Postades av 2006-05-11 16:01:39 - Magnus Gustavsson

Tack Robban!

Nu fungerar det. =)

Mvh Magnus


Svara

Nyligen

  • 09:09 Vill du köpa medicinska tester?
  • 12:47 Vem beviljar assistansen – kommune
  • 14:17 Någon med erfarenhet av hemstädnin
  • 14:14 Bör man använda sig av en båtförme
  • 14:12 Finns det någon intressant hundblo
  • 14:25 Tips på verktyg för att skapa QR-k
  • 14:23 Tips på verktyg för att skapa QR-k
  • 20:52 Fungerer innskuddsbonuser egentlig

Sidor

  • Hem
  • Bli bonusmedlem
  • Läs artiklar
  • Chatta med andra
  • Sök och erbjud jobb
  • Kontakta oss
  • Studentlicenser
  • Skriv en artikel

Statistik

Antal besökare:
Antal medlemmar:
Antal inlägg:
Online:
På chatten:
4 569 170
27 953
271 705
858
0

Kontakta oss

Frågor runt konsultation, rådgivning, uppdrag, rekrytering, annonsering och övriga ärenden. Ring: 0730-88 22 24 | pelle@pellesoft.se

© 1986-2013 PelleSoft AB. Last Build 4.1.7169.18070 (2019-08-18 10:02:21) 4.0.30319.42000
  • Om
  • Kontakta
  • Regler
  • Cookies