Avatar billede baltazar_ Nybegynder
26. april 2003 - 00:00 Der er 10 kommentarer

formatering af text / validering

Hvorledes kan man kontrollere en CString har flg. format  5545.2343
og hvis det er tilfældet dele det op i fire variabler
så variabel 1 er "55" og to er 45 og tre er 23 og fire er 43
Avatar billede bertelbrander Novice
26. april 2003 - 00:27 #1
Nu skriver du ikke hvordan formatet præsist skal være, men man kunne jo bruge noget i retning af:

CString s1 = "5545.2343";
if(s1.GetLength() == 9 && s1[4] == '.')
{
  // s1 er valid
}

Dvs. checke om strengen er 9 lang og om karakter nummber fire er et punktum.

Til at dele strengen i fire kan man bruge CString::Left(), CString::Mid() og
CString::Right(), f.eks til del 2:
CString s1 = "5545.2343";
Cstring v2 = s1.Mid(2, 2);

HTH

/b
Avatar billede baltazar_ Nybegynder
26. april 2003 - 00:33 #2
glemte at sige at resultat skal være integer
Avatar billede bertelbrander Novice
26. april 2003 - 00:58 #3
int resultat = strtol((const char *)s1.Mid(2, 2), NULL, 0);
Avatar billede baltazar_ Nybegynder
26. april 2003 - 02:52 #4
det er jo helt perfekt  nu kører det. tak for hjælpen. Det var ige den info jeg havde brug for for at komme vidrer
Avatar billede baltazar_ Nybegynder
26. april 2003 - 03:01 #5
kunne du evt. vejlede mig lidt i hvorledes jeg tildeller en værdi til et element i en struct.
jeg har lavet en struct således og ville gerne tilegne værdien af (integer)  "numbers" til
struct medlem  "antal" i forsjov.

struct forsjov{
char* emne;
char* joke;
int antal; //
};
Avatar billede baltazar_ Nybegynder
26. april 2003 - 03:07 #6
dooh  har fundet ud af det,    man skal bare tænke sig lidt mere om
Avatar billede jpk Nybegynder
28. april 2003 - 17:26 #7
Hmm, såvidt jeg husker HAR jeg sendt dig noget kode der klarer alt dette..?
Hvorfor vil du iøvrigt have strengen delt op i 4 integers og ikke en int med grader (55) og en float med minutter (45.2343)?
Avatar billede baltazar_ Nybegynder
28. april 2003 - 20:04 #8
for at være helt ærligt syntes jeg det forvirrede mig en del. Så jeg tænkte jeg ville gå ned på et lidt lavere plan først og så derefter arbejde på at gøre det mere rigtigt senere
Avatar billede baltazar_ Nybegynder
28. april 2003 - 20:06 #9
men jeg har gemt informationerne og studere den nærmere ind i mellem selvfølgelig, jeg kan godt se det er den rigtige måde at gøre det på
Avatar billede bertelbrander Novice
28. april 2003 - 20:28 #10
Du bør nok bruge 10 som den sidste parameter i kaldet til strtol, i tilfælde af at din streng er 08 eller 09 (som elllers vil blive opfattet som invalide octale tal).
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester