Archief - string zoeken in string en in array plaatsen

Het archief is een bevroren moment uit een vorige versie van dit forum, met andere regels en andere bazen. Deze posts weerspiegelen op geen enkele manier onze huidige ideeën, waarden of wereldbeelden en zijn op sommige plaatsen gecensureerd wegens ontoelaatbaar. Veel zijn in een andere tijdsgeest gemaakt, al dan niet ironisch - zoals in het ironische subforum Off-Topic - en zouden op dit moment niet meer gepost (mogen) worden. Toch bieden we dit archief nog graag aan als informatiedatabank en naslagwerk. Lees er hier meer over of start een gesprek met anderen.

killer9

Legacy Member
Hallo,

Ik zoek een string een een string.
De gevonden string wil ik dan in een array opslaan.
de string bestaat uit het volgende:
" N 30.388E-12,N 3.417E-03,N 6.48.523,N 30.388E-12,N 3.417E-03,N 6.48.523,N 30.388E-12,N 3.417E-03,N 6.48.523,N 30.388E-12,N 3.417E-03,N 6.48.523,N 30.388E-12,N 3.417E-03,N 6.48.523,N 30.388E-12,N 3.417E-03,N 6.48.523,N 30.388E-12,N 3.417E-03,N 6.48.523,N 30.388E-12,N 3.417E-03,N 6.48.523,N 30.388E-12,N 3.417E-03,N 6.48.523,N 30.388E-12,N 3.417E-03,N 6.48.523,N 30.388E-12,N 3.417E-03,N 6.48.523,N 30.388E-12,N 3.417E-03,N 3"

Dit is de uitvoer van data van een meettoestel. Ik heb enkel de getallen nodig zodat ik deze later kan gebruiken om oa een grafiek van te maken.

Weet iemand hoe ik dit kan doen?

Moto

Legacy Member
bwa in c# gewoon splitten naar een array op ",N " en dan array converten naar getallen

Parnakra

Legacy Member
Code:
C#
string toSplit = " N 30.388E-12,N 3.417E-03,N 6.48.523,N 30.388E-12,N 3.417E-03,N 6.48.523,N 30.388E-12,N 3.417E-03,N 6.48.523,N 30.388E-12,N 3.417E-03,N 6.48.523,N 30.388E-12,N 3.417E-03,N 6.48.523,N 30.388E-12,N 3.417E-03,N 6.48.523,N 30.388E-12,N 3.417E-03,N 6.48.523,N 30.388E-12,N 3.417E-03,N 6.48.523,N 30.388E-12,N 3.417E-03,N 6.48.523,N 30.388E-12,N 3.417E-03,N 6.48.523,N 30.388E-12,N 3.417E-03,N 6.48.523,N 30.388E-12,N 3.417E-03,N 3";
toSplit = toSplit.Replace("N ", "");
toSplit.Trim();
string[] numbers = toSplit.Split(",");
Code:
Python
' N 30.388E-12,N 3.417E-03,N 6.48.523,N 30.388E-12,N 3.417E-03,N 6.48.523,N 30.388E-12,N 3.417E-03,N 6.48.523,N 30.388E-12,N 3.417E-03,N 6.48.523,N 30.388E-12,N 3.417E-03,N 6.48.523,N 30.388E-12,N 3.417E-03,N 6.48.523,N 30.388E-12,N 3.417E-03,N 6.48.523,N 30.388E-12,N 3.417E-03,N 6.48.523,N 30.388E-12,N 3.417E-03,N 6.48.523,N 30.388E-12,N 3.417E-03,N 6.48.523,N 30.388E-12,N 3.417E-03,N 6.48.523,N 30.388E-12,N 3.417E-03,N 3'.strip('N ').split(',N ')
Code:
Java
String s = " N 30.388E-12,N 3.417E-03,N 6.48.523,N 30.388E-12,N 3.417E-03,N 6.48.523,N 30.388E-12,N 3.417E-03,N 6.48.523,N 30.388E-12,N 3.417E-03,N 6.48.523,N 30.388E-12,N 3.417E-03,N 6.48.523,N 30.388E-12,N 3.417E-03,N 6.48.523,N 30.388E-12,N 3.417E-03,N 6.48.523,N 30.388E-12,N 3.417E-03,N 6.48.523,N 30.388E-12,N 3.417E-03,N 6.48.523,N 30.388E-12,N 3.417E-03,N 6.48.523,N 30.388E-12,N 3.417E-03,N 6.48.523,N 30.388E-12,N 3.417E-03,N 3";
String[] numbers = s.substring(3).split(",N ");
Code:
Ruby
s = " N 30.388E-12,N 3.417E-03,N 6.48.523,N 30.388E-12,N 3.417E-03,N 6.48.523,N 30.388E-12,N 3.417E-03,N 6.48.523,N 30.388E-12,N 3.417E-03,N 6.48.523,N 30.388E-12,N 3.417E-03,N 6.48.523,N 30.388E-12,N 3.417E-03,N 6.48.523,N 30.388E-12,N 3.417E-03,N 6.48.523,N 30.388E-12,N 3.417E-03,N 6.48.523,N 30.388E-12,N 3.417E-03,N 6.48.523,N 30.388E-12,N 3.417E-03,N 6.48.523,N 30.388E-12,N 3.417E-03,N 6.48.523,N 30.388E-12,N 3.417E-03,N 3"
numbers = s[3,-1].split(",N")
Allemaal ongetest en uit het hoofd (en moet nog geconverteerd worden waar nodig).

/edit: is er trouwens enige reden waarom de eerste waarde door ' N ' voorafgegaan wordt?

killer9

Legacy Member
Parnakra zei:
Code:
C#
string toSplit = " N 30.388E-12,N 3.417E-03,N 6.48.523,N 30.388E-12,N 3.417E-03,N 6.48.523,N 30.388E-12,N 3.417E-03,N 6.48.523,N 30.388E-12,N 3.417E-03,N 6.48.523,N 30.388E-12,N 3.417E-03,N 6.48.523,N 30.388E-12,N 3.417E-03,N 6.48.523,N 30.388E-12,N 3.417E-03,N 6.48.523,N 30.388E-12,N 3.417E-03,N 6.48.523,N 30.388E-12,N 3.417E-03,N 6.48.523,N 30.388E-12,N 3.417E-03,N 6.48.523,N 30.388E-12,N 3.417E-03,N 6.48.523,N 30.388E-12,N 3.417E-03,N 3";
toSplit = toSplit.Replace("N ", "");
toSplit.Trim();
string[] numbers = toSplit.Split(",");
Code:
Python
' N 30.388E-12,N 3.417E-03,N 6.48.523,N 30.388E-12,N 3.417E-03,N 6.48.523,N 30.388E-12,N 3.417E-03,N 6.48.523,N 30.388E-12,N 3.417E-03,N 6.48.523,N 30.388E-12,N 3.417E-03,N 6.48.523,N 30.388E-12,N 3.417E-03,N 6.48.523,N 30.388E-12,N 3.417E-03,N 6.48.523,N 30.388E-12,N 3.417E-03,N 6.48.523,N 30.388E-12,N 3.417E-03,N 6.48.523,N 30.388E-12,N 3.417E-03,N 6.48.523,N 30.388E-12,N 3.417E-03,N 6.48.523,N 30.388E-12,N 3.417E-03,N 3'.strip('N ').split(',N ')
Code:
Java
String s = " N 30.388E-12,N 3.417E-03,N 6.48.523,N 30.388E-12,N 3.417E-03,N 6.48.523,N 30.388E-12,N 3.417E-03,N 6.48.523,N 30.388E-12,N 3.417E-03,N 6.48.523,N 30.388E-12,N 3.417E-03,N 6.48.523,N 30.388E-12,N 3.417E-03,N 6.48.523,N 30.388E-12,N 3.417E-03,N 6.48.523,N 30.388E-12,N 3.417E-03,N 6.48.523,N 30.388E-12,N 3.417E-03,N 6.48.523,N 30.388E-12,N 3.417E-03,N 6.48.523,N 30.388E-12,N 3.417E-03,N 6.48.523,N 30.388E-12,N 3.417E-03,N 3";
String[] numbers = s.substring(3).split(",N ");
Code:
Ruby
s = " N 30.388E-12,N 3.417E-03,N 6.48.523,N 30.388E-12,N 3.417E-03,N 6.48.523,N 30.388E-12,N 3.417E-03,N 6.48.523,N 30.388E-12,N 3.417E-03,N 6.48.523,N 30.388E-12,N 3.417E-03,N 6.48.523,N 30.388E-12,N 3.417E-03,N 6.48.523,N 30.388E-12,N 3.417E-03,N 6.48.523,N 30.388E-12,N 3.417E-03,N 6.48.523,N 30.388E-12,N 3.417E-03,N 6.48.523,N 30.388E-12,N 3.417E-03,N 6.48.523,N 30.388E-12,N 3.417E-03,N 6.48.523,N 30.388E-12,N 3.417E-03,N 3"
numbers = s[3,-1].split(",N")
Allemaal ongetest en uit het hoofd (en moet nog geconverteerd worden waar nodig).

/edit: is er trouwens enige reden waarom de eerste waarde door ' N ' voorafgegaan wordt?

Er is geen reden waarom het getal eerst door een N vooraf wordt gegaan. Dit is het formaat waarin ik de data krijg.

Ik werk in c++, ik heb .split geprobeerd, maar deze werkt niet in c++.
weet u hoe ik dit in c++ kan doen?

Parnakra

Legacy Member
Code:
C++
#include <stdio.h>
#include <string.h>

int main ()
{
  char str[] =" N 30.388E-12,N 3.417E-03,N 6.48.523,N 30.388E-12,N 3.417E-03,N 6.48.523,N 30.388E-12,N 3.417E-03,N 6.48.523,N 30.388E-12,N 3.417E-03,N 6.48.523,N 30.388E-12,N 3.417E-03,N 6.48.523,N 30.388E-12,N 3.417E-03,N 6.48.523,N 30.388E-12,N 3.417E-03,N 6.48.523,N 30.388E-12,N 3.417E-03,N 6.48.523,N 30.388E-12,N 3.417E-03,N 6.48.523,N 30.388E-12,N 3.417E-03,N 6.48.523,N 30.388E-12,N 3.417E-03,N 6.48.523,N 30.388E-12,N 3.417E-03,N 3";
  char * pch;
  pch = strtok (str," ,N");
  while (pch != NULL)
  {
    printf ("%s\n",pch);
    pch = strtok (NULL, " ,N");
  }
  return 0;
}
Gevonden op het net, dus geen idee of het werkt naar behoren.

killer9

Legacy Member
heel erg bedankt voor jullie uitleg. Met de code van Parnakra is het me gelukt!
Het archief is een bevroren moment uit een vorige versie van dit forum, met andere regels en andere bazen. Deze posts weerspiegelen op geen enkele manier onze huidige ideeën, waarden of wereldbeelden en zijn op sommige plaatsen gecensureerd wegens ontoelaatbaar. Veel zijn in een andere tijdsgeest gemaakt, al dan niet ironisch - zoals in het ironische subforum Off-Topic - en zouden op dit moment niet meer gepost (mogen) worden. Toch bieden we dit archief nog graag aan als informatiedatabank en naslagwerk. Lees er hier meer over of start een gesprek met anderen.
Terug
Bovenaan