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


Evaluera en sträng

Postades av 2006-11-09 13:43:15 - Johan Jonsson, i forum c# (c-sharp), Tråden har 10 Kommentarer och lästs av 1190 personer

Hej!

Jag har en sträng:
([var] is null or ([var] = 'K' or [var] = 'M'))

Jag vill, i C#, kunna sätta in typ en valfri variabel på [var] platsen och se om det är sant, dvs. evaluera strängen, går det? Jag är inte speciellt bra på regexp, det kanske är en lösning?


Svara

Sv: Evaluera en sträng

Postades av 2006-11-09 16:25:19 - Johan Jonsson

Löser det så länge med att anropa databasen
select count(*) from ... where ([var] is null or ([var] = 'K' or [var] = 'M'))


Svara

Sv:Evaluera en sträng

Postades av 2006-11-09 16:39:45 - Marcus Gus

varför anropa databsen för en sådan sak? Kan du inte göra det med regexp (och jag orkar inte just nu) så kan du ju lösa det med vanlig kod.

<code>
string tmp = "k";
if (tmp is null || (tmp = "K" || tmp = "M"))
{
Messagebox.Show("Tjoho");
}
</code>


Svara

Sv: Evaluera en sträng

Postades av 2006-11-09 19:32:36 - Johan Jonsson

Ditt förslag:
<code>
string tmp = "([var] is null or ([var] = 'K' or [var] = 'M')) ";
string temp = "K";
tmp = tmp.Replace("[var]",temp);
if(tmp)
...
</code>

men jag kan inte riktigt köra:
if(tmp) den evaluerar inte det jag vill, get the problem


Svara

Sv:Evaluera en sträng

Postades av 2006-11-10 10:35:15 - Marcus Gus

<b>Ditt förslag:</b>

Du har inte med mitt förslag, så som du har gjort kommer ju aldrig att fungera. Det du verkan villja med din sträng som du anger i första posten (([var] is null or ([var] = 'K' or [var] = 'M')) ) är att se om [var] är NULL, lika med "K" eller lika med "M".

Att sätta in en sträng i en IF sats som du har gjort (som inte är mitt exempel som du skriver, för det som är i din post vet jag inte vad det är) kommer inte att fungera då en IF sats kräver något som är, eller returnerar, ett boolskt värde. Kompilatorn säger ifrån direkt.

I det exemplet jag gav fanns det vissa slarvfel (is skall var ==, = skall ju självklart vara ==) eftersom jag inte testade exemplet utan hoppades på att andemieningen med hur det fungerar skulel framgå. Om du provar nedanstående

<code>
string tmp = "";
if (tmp == null || (tmp == "K" || tmp == "M"))
{
MessageBox.Show("Tjoho");
}
</code>

så kommer du att se att messageboxen ENDAST kommer att visas under följande förutsättningar
<code>
string tmp = null;
string tmp = "M";
string tmp = "K";
</code>
I alla andra fall kommer IF-uttrycket att bli falskt.

Är det så att du inte vill att uttrycket skall vara sant under följande villkor (Null, "K" eller "M") så får du ange under vilka villkor du vill att uttrycket skall vara sant.


Svara

Sv: Evaluera en sträng

Postades av 2006-11-10 12:13:33 - Roger Alsing

vad är det du vill göra?

regex kan inte evaluera några strängar , du kan använda det för avancerad find/replace men inte evaluering.

ska du evaluera en sträng så finns det några olika sätt.

1) använd jscript.net
2) använd managed c# compilern och kompilera en snutt c# kod i runtime
3) använd formelfält i ett dataset (ett fält kan sättas till ett expression)
4) skriv en egen expressiontolk :-) , klart roligast och mest utmaning

hur du använder managed c# kompilern finns i programarkivet här någonstanns..


Svara

Sv:Evaluera en sträng

Postades av 2006-11-10 12:28:23 - Marcus Gus

<b>regex kan inte evaluera några strängar , du kan använda det för avancerad find/replace men inte evaluering.</b>

Jovisst går det... man får sätta upp det mönster man vill att regexp skall söka efter och evaluera bara.

<code>
private bool IsInteger(string text)
{
Regex _isNumber = new Regex(@"^\d+$");
Match m = _isNumber.Match(text);
return m.Success;
}
</code>
Denna kontrollerar tex om strängen enbart innehåller siffror (ja jag vet, funktionen borde inte heta isIteger). Söker du i forumet så komemr du hitta alldeles för många träffar om hur man evaluerar om en sträng är ett personummer, en postkod, ett telefonnummer osv...


Svara

Sv: Evaluera en sträng

Postades av 2006-11-10 12:43:06 - Roger Alsing

men det där är ju inte samma sak.
det där är ju bara strängmatching.
att matcha stängar är _inte_ samma sak som att evaluera en formel.

visa mig det regex som kan få fram vad "1 + 2.34 * (1 / 5) " blir


Svara

Sv:Evaluera en sträng

Postades av 2006-11-10 13:12:20 - Marcus Gus

<b>att matcha stängar är _inte_ samma sak som att evaluera en formel.</b>

Varför börjar du ta upp formler och räkneexepel när trådskaparens tråd handlar om strängevaluering? Det han verkar villja göra är att kontrollera om [var] är Null, [Var] är = "M" eller [var] = "K". Att börja räka med hjälp av Regexp har inte varit aktuellt förrens du tog upp det utan tråden har enbart handlat om strängar.




Svara

Sv: Evaluera en sträng

Postades av 2006-11-10 13:25:28 - Roger Alsing

>>Varför börjar du ta upp formler och räkneexepel när trådskaparens tråd handlar om strängevaluering?

därför att det är exakt det han frågar?
han frågar ju hur han evaluerar formeln i hans sträng..

om han inte vore ute efter att evaluera innehållet i strängen så skulle han ju bara skriva en vanlig ifstats..


Svara

Sv:Evaluera en sträng

Postades av 2006-11-10 13:35:06 - Johan Jonsson

Oj, här har det hänt saker och jag glädjs åt att vi kommit till kärnan av mitt problem och alla missförstånd har försvunnit.

Marcus: Rörande inlägget med "Ditt förslag" så vet jag mycket väl att det inte kommer att fungera och jag ville bara visa på att jag hade förklarat lite luddigt/du missförstod mitt problem. Jag har en sträng vilken innhåller något villkor jag vill evaluera.

Roger: Ditt inlägg med de olika förslagen var precis det jag sökte.

Tack för hjälpen!


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
575
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