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


Problem med kontrollfunktion för kontroll av siffror...

Postades av 2008-01-15 20:30:28 - Maria Unborg, i forum c# (c-sharp), Tråden har 9 Kommentarer och lästs av 1426 personer

Jag sitter och försöker få till en kontrollfunktion som ska se till att mitt program inte stängs av om man skriver in ett mellanslag eller en bokstav där man ska skriva in en siffra.
Då det är många siffror som ska läggas in tyckte jag att det vore bättre med att ha en funktion som man kallar på isf att skriva ut kontrollfunktionen vid alla sifferinskrivningar.

Problemet blir att eftersom jag måste sätta boolens värde redan i början (därför har jag testat med att både använda bool och string i denna funktion. Denna kod gör att det hela tiden går runt och tar in siffra.

Jag har testat med en funktion i main som jag kallar till via:
Console.WriteLine("Var vänlig och skriv in {0}'s budgeterade antal kronor", projektnamn);
testasiffror();
beräknadbudget = Convert.ToInt32(test);

public static string testasiffror()
{

string test, tur;
test = "o";
tur = "f";
while (tur == "f")
{
test = Console.ReadLine();
if (!Regex.Match(test, @"^\d{}$").Success)
{
Console.WriteLine("Var vänlig och skriv in en korrekt siffra. ");
}
else
{
tur = "t";
return tur;
return test;
}
}
return test;
}//end public static string testasiffror


Svara

Sv: Problem med kontrollfunktion för kontroll av siffror...

Postades av 2008-01-16 08:14:55 - Sofia Freij

Nu vet jag inte om det är en Form eller en console applikation du tillverkar. Men när jag har en textbox i en form och jag bara vill tillåta siffror så brukar jag ta hand om KeyPress eventet och skriva såhär:

void textBox1_KeyPress(object sender, KeyPressEventArgs e)
{
if ((e.KeyChar < '0' || e.KeyChar > '9') && (int)e.KeyChar != 8) // 8 = back space
{
e.Handled = true;
}
}

Det som händer här är att alla siffror 0-9 släpps igenom och även back space.

Du kan också fånga upp speciella tangenttryckningar genom att använda Key Down eventet:

void textBox1_KeyDown(object sender, KeyEventArgs e)
{
if (e.KeyCode == Keys.Enter || e.KeyCode == Keys.Return)
{
}
}

Hoppas detta kan vara till hjälp.


Svara

Sv:Problem med kontrollfunktion för kontroll av siffror...

Postades av 2008-01-16 08:25:07 - Sofia Freij

Förresten,

Istället för ReadLine så kan du väl använda Console.Read() eller Console.ReadKey()

Read() ger dig en int som nog är ascii koden för tecknet som skrevs in.

ascii koderna för 0-9 är 48-57


Svara

Sv: Problem med kontrollfunktion för kontroll av siffror...

Postades av 2008-01-16 09:06:23 - Chris Klug

Jag håller med om att det kanske är lättare att kolla på ReadKey istället, men annars kan du skriva om som följer... Ser lite lättare ut... Vet inte om RegEx:en är rätt...men det är den säkert... Skulle själv nog skrivit @"^[0-9]$"
<code>
public static string testasiffror()
{

string input;
while (true)
{
input= Console.ReadLine();
if (!Regex.Match(input, @"^\d{}$").Success)
Console.WriteLine("Var vänlig och skriv in en korrekt siffra. ");
else
return input;
}
}
</code>


Svara

Sv: Problem med kontrollfunktion för kontroll av siffror...

Postades av 2008-01-16 09:09:48 - Roger Alsing

Int.TryParse(..)
Double.TryParse(..)


Svara

Sv:Problem med kontrollfunktion för kontroll av siffror...

Postades av 2008-01-16 09:13:37 - Maria Unborg

Glömde säga att det är en Console Application.
Nackdelen med att använda en ReadKey är att man ska kunna skriva in rätt stora siffror.
Sen förstod jag inte riktigt det hela med ascii koden.

Vänligen,
Maria


Svara

Sv:Problem med kontrollfunktion för kontroll av siffror...

Postades av 2008-01-16 09:48:29 - Maria Unborg

problemet är att det fortfarande går runt runt för mig om jag börjar med att skriva fel.
sen är frågan hur jag får in detta tillbaka till main på ett bra sätt - vet inte om jag skriver helt fel, eller tänker fel men har suttit med denna kontrollfunktion i över två dygn så.

För låter jag det stå "static void Main(string[] args)"
så får jag "The name 'input' does not exist in the current context"


static void Main(string[] input)
{

int beräknadbudget;

Console.WriteLine("Var vänlig och skriv in projektets budgeterade antal kronor");
testasiffror();
Console.WriteLine("{0}", input);
}

så får jag

Var vänlig och skriv in projektets budgeterade antal kronor
test
Var vänlig och skriv in en korrekt siffra.
1

Ohanterat undantag: System.FormatException: Indatasträngen hade ett felaktigt format.





Svara

Sv: Problem med kontrollfunktion för kontroll av siffror...

Postades av 2008-01-16 10:13:10 - Chris Klug

Testa följande:

<code>
static void Main(string[] input)
{
Console.WriteLine("Var vänlig och skriv in projektets budgeterade antal kronor");
int value = GetIntInput();
Console.WriteLine("{0}", value);
}

static int GetIntInput()
{
int returnValue;
string input;
while (true)
{
input = Console.ReadLine();
if (int.TryParse(input,ref returnValue))
return returnValue;
else
Console.WriteLine("Var vänlig och skriv in en korrekt siffra.");
}
}
</code>
Det bör funka...


Svara

Sv:Problem med kontrollfunktion för kontroll av siffror...

Postades av 2008-01-16 10:40:08 - Maria Unborg

Det fungerade. Tack så otroligt mycket.


Svara

Nyligen

  • 21:41 Automotive Services UK
  • 20:44 Erfarenhet av CBD-olja mot sömnpro
  • 12:13 Sex Dolls for Sale
  • 19:42 Online Casinos for Haitian Players
  • 19:38 Rekommendera något intressant
  • 19:13 Международная перевозка грузов
  • 00:01 DL Van Tuning | Exclusive Body Kit
  • 12:08 Indian casino

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 570 880
27 965
271 774
532
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