Avatar billede maddog2k1 Nybegynder
18. april 2007 - 13:39 Der er 15 kommentarer

opdeling af tekst streng

Har spurgt om ligende før men er stadig lidt i tvivl ang substrings :S

skal ha delt følgende streng op:

%KRISTENSEN^LEON                  ANDERS LORENSEN VEJ 8            8516220?

så at jeg har
fornavn
efternavn
adresse
og post nr

post nr er de sidste 4 (6220)

1000 tak
Avatar billede maddog2k1 Nybegynder
18. april 2007 - 13:55 #1
det skal lige siges at det bare er et eksempel den streng.. det jeg vil er at dele input op som kommer ind i computeren når jeg scanner sygesikringskort ind med min kort læser og placer info i de rigtige tekstboxe
Avatar billede maddog2k1 Nybegynder
18. april 2007 - 15:11 #2
Dette kode virker næsten! :) den siger: Indekset og længden skal referere til en placering i strengen. Parameternavn:length ?? den kaster godt nok de forskellige ting ud på de rigtige pladser..




string skrald = opdeling.Substring(0, 1);
               
                string enavn = opdeling.Substring(skrald.Length);
                enavn = enavn.Substring(0, enavn.IndexOf("^"));
               
                string fnavn = opdeling.Substring(skrald.Length + enavn.Length + 1);
                fnavn = fnavn.Substring(0,10);
               
                string adresse = opdeling.Substring(skrald.Length + 34);
                adresse = adresse.Substring(0,25);

                string postnr = opdeling.Substring(skrald.Length + 71);
                postnr = postnr.Substring(0, 4);

                textBox2.Text = fnavn;
                textBox3.Text = enavn;
                textBox8.Text = adresse;
                textBox4.Text = postnr;

Dog er koden ikke helt optimal for den ved ikek præcist hvor fornavn ender.. osv som i nok kan se ud af koden den tager bare de første 10 pladser
Avatar billede mikkel_sommer Nybegynder
18. april 2007 - 15:20 #3
hvad med:

fnavn = fnavn.Substring(0, fnavn.IndexOf("  "));
Avatar billede arne_v Ekspert
19. april 2007 - 02:46 #4
eller

fnavn = fnavn.Trim();
Avatar billede maddog2k1 Nybegynder
19. april 2007 - 09:19 #5
Ved i hvorfor den siger den fejl ? det er lidt forskellig hvilken fejl den kommer med :S feks nu siger den: Længden må ikke være mindre end nul. Parameternavn: lenght
Avatar billede maddog2k1 Nybegynder
19. april 2007 - 13:17 #6
ved hvad der er galt nu... Stregen er delt op med "Enter tasten" sådan her ser den egentlig ud

%KRISTENSEN^LEON                 
ANDERS LORENSEN VEJ 8           
8516220?

Bemærk mellemrum efter hver linie... hvordan opdeler jeg i en substring med enter ??
Avatar billede arne_v Ekspert
19. april 2007 - 15:12 #7
linier vil normal vaere adskilt af \r\n
Avatar billede maddog2k1 Nybegynder
19. april 2007 - 16:27 #8
arne hva kan jeg gøre for at samle dem så det en lang linie ?
Avatar billede arne_v Ekspert
20. april 2007 - 03:22 #9
kan du ikke splitte på de tegn ?
Avatar billede maddog2k1 Nybegynder
20. april 2007 - 09:35 #10
kanjeg ike få dig til at give et eksempel arne ? er ikke for god mht. opsplitning af strenge osv :(
Avatar billede arne_v Ekspert
21. april 2007 - 05:36 #11
du kan bruge IndexOf ligesom i din 18/04-2007 15:11:13 kode
Avatar billede maddog2k1 Nybegynder
22. april 2007 - 23:27 #12
Testede lige med opdeling.Replace("\n\r", "test"); og smed derefter opdeling ud i en textbox for at se om der blev tilføjet "test" nogen stedder.. Det gør der ikke så det tyder på den ikke splitter teksten af ??  Men hvorfor kommer den så med fejlen:

Længden må ikke være mindre end nul.
Parameternavn: lenght

Lenght cannot be less than zero.
Parameter name: lengyh
Avatar billede maddog2k1 Nybegynder
22. april 2007 - 23:31 #13
Det somom den indlæser noget af informationen først inden den henter det hele
%KRISTENSEN bliver vist i textboxen efter jeg kører kortet igennem kort læseren og så kommer den med fejlen og når jeg så trykker ok til fejlen så kommer resten af dataen..
Avatar billede maddog2k1 Nybegynder
23. april 2007 - 00:00 #14
Den læser først de første 8 bytes den modtager derefter modtager den resten... det rimelig underligt ???
Avatar billede maddog2k1 Nybegynder
23. april 2007 - 08:55 #15
HAr fundet en løsning: lavede en timer på 100 ms.. så den lige får tid til at hente hele strengen ind inden den splitter den.
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
IT-kurser om Microsoft 365, sikkerhed, personlig vækst, udvikling, digital markedsføring, grafisk design, SAP og forretningsanalyse.

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