Variabele splitsen

Status
Niet open voor verdere reacties.

Bramvr

Gebruiker
Lid geworden
25 nov 2012
Berichten
216
Beste

Ik ben bezig met een elektronica project waarbij ik data stuur naar de pc. Deze data zet ik in een variabele. Ik heb 2 vragen voor hoe ik de data moet behandelen.

- Ik stuur ook stopbits maar ik weet niet hoe ik deze kan controleren. Ik stuur als stopbits CR en LF. Hoe kan ik controleren dat dit goed is?

- Er wordt veel data gestuurd naar de pc. Deze data komt in 1 variabele maar ik zou deze data moeten kunnen opsplitsen naar meerdere variabele. Bv de eerste 4 karakters naar variabele A de volgende 2 naar variabele B enz.... Hoe moet dit?

Bram
 
Je kan de methode .split gebruiken om de data te splitsen

[CPP]using System;

class Program
{
static void Main()
{
string s = "Helpmij is awesome!";

string[] words = s.Split(' ');
foreach (string word in words)
{
Console.WriteLine(word);
}
}
}[/CPP]

Dit zal op spaties splitten, echter kan je ook kiezen voor een , of # of net wat je wilt.

Je kunt ook een kleine methode opzetten om een aantal characters terug te krijgen van de string (bijv. de eerste 4)

[CPP]
public static string TruncateLongString(this string str, int maxLength)
{
return str.Substring(0, Math.Min(str.Length, maxLength));
}
[/CPP]
de maxLength geeft hier dus aan hoeveel je terugstuurd (4 bijv.)
De 0 staat voor de eerste character. dus vanaf 0 tot 4
 
Geef eens een voorbeeld van zo'n variabele.
 
Er komt bv in de variabele IN 2410589632 binnen. Ik wil dit dan zou opsplitsen. In variabele Temp komt 2410 te staan en in variabele Analoog komt 589632 te staan. Maar dan nog uitgebreider. Ik hoop dat het duidelijk is.
 
Dat gaat toch prima met de hierboven geschreven methode?
 
Laatst bewerkt door een moderator:
Je kunt je string splitsen, net als in Mastermindzhs voorbeeld.
Dit voorbeeld is wat concreter:

[cpp] string input = "IN 2410589632";

//Hier controleren of de input aan de eisen voldoet

string Temp = input.Substring(3, 4); // 2410 (eerste 4 getallen)
string Analoog = input.Substring(7, input.Length - 7); //589632 (overige getallen)[/cpp]
 
Ok bedankt dat zal wel lukken.

Nu had ik nog graag een antwoord op deze vraag:
- Ik stuur ook stopbits maar ik weet niet hoe ik deze kan controleren. Ik stuur als stopbits CR en LF. Hoe kan ik controleren dat dit goed is?
 
Sorry, maar daar heb ik geen ervaring mee.
Hoe zit dat precies (kan er ook niet veel over vinden) met die stopbits?
 
Je kunt je string splitsen, net als in Mastermindzhs voorbeeld.
Dit voorbeeld is wat concreter:

[cpp] string input = "IN 2410589632";

//Hier controleren of de input aan de eisen voldoet

string Temp = input.Substring(3, 4); // 2410 (eerste 4 getallen)
string Analoog = input.Substring(7, input.Length - 7); //589632 (overige getallen)[/cpp]

dit is goed maar de data heeft geen vaste lengte en ik wil de data onderschijden met een , maar hoe kan ik dit maken bij dit programma?
 
Uit m'n hoofd:

[cpp]foreach(string deel in input.Split(',')){
//'deel' is nu je stukje tekst dat gescheiden was door komma's
}[/cpp]
 
Ok bedankt

Maar bestaat er ook een mogelijkheid om dit zo te doen:

Bv de inkomende data is 1011101,2457,3200,154756

Hoe kan ik dan die 3200 uit die data halen. De lengte van de waardes kan wel variëren.
Dus ik zou eigenlijk een stukje code moeten hebben dat ik data tussen 2de en de 3de komma met iets kan vergelijken
 
Wat werkt er niet met JoZ1's oplossing? Afgezien dat je zelf een tellertje toevoegt om het 3de element te pakken.
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan