Avatar billede saison Nybegynder
15. januar 2004 - 19:21 Der er 13 kommentarer og
3 løsninger

Del streng op

Jeg er forholdsvis ny i Delphi og sidder med et lille problem.
Jeg har en streng jeg skal analysere, bogstav for bogstav, hvordan deler jeg den op?!
Avatar billede Slettet bruger
15. januar 2004 - 20:04 #1
Det kommer jo an på hvordan du vil dele strengen op, men prøv at kigge her og se om det er noget du kan bruge det:

http://www.swissdelphicenter.ch/torry/showcode.php?id=1195
Avatar billede saison Nybegynder
15. januar 2004 - 21:00 #2
Jeg vil bare tjekke hver enkelt bogstav i strengen, f.eks. tjekke om det er en vokal eller konsonant...
Avatar billede Slettet bruger
15. januar 2004 - 21:13 #3
Du kan bruge det her til at tælle vokaler:

const
vokaler: set of Char = ['A', 'E', 'I', 'O', 'U', 'Y', 'Æ', 'Ø', 'Å'];
var
Streng: String;
I: Integer;
antalvokaler: Integer;
begin
  Streng := 'En streng';
  antalvokaler := 0;
  for I := 0 to Length(Streng) do
  begin
    //Denne kode bliver kaldt for, hver bogstav
    if UpperCase(Streng)[I] in vokaler then
    begin
      antalvokaler := antalvokaler + 1;//Hvis bogstavet var en vokal forhøjer den antal vokaler med 1
    end;
  end;
  ShowMessage(IntToStr(antalvokaler));
end;
Avatar billede saison Nybegynder
15. januar 2004 - 22:02 #4
øhm tak skal du havE?!
Avatar billede Slettet bruger
15. januar 2004 - 22:12 #5
Har du fundet ud af det??.. Eller skal du bare spørge :)
Avatar billede saison Nybegynder
16. januar 2004 - 00:55 #6
ok, jeg har ikke fundet ud af det. Jeg vil godt have splittet strengen på en eller anden måde. Jeg skal bruge tegn nr. 7, 8, 9 og 10 i strengen. Hvordan vælger jeg dem ud?!
Avatar billede Slettet bruger
16. januar 2004 - 07:00 #7
Så skriver du bare Streng[7], Streng[8] osv..
Avatar billede athlon-pascal Juniormester
16. januar 2004 - 08:35 #8
hejhej ->
for I := 0 to Length(Streng) do
Der bør stå:
for I := 1 to Length(Streng) do
...
Avatar billede Slettet bruger
16. januar 2004 - 13:10 #9
athlon-pascal -> Ups... :/
Avatar billede jaweni Nybegynder
16. januar 2004 - 22:37 #10
Hej saison, du kunne skrive:

PROCEDURE Select;
VAR
  Valgte : String[4]; { du vil finde 4 tegn }
BEGIN
  Valgte := ''; 
  FOR I := 7 TO 10 DO  { tegnene fra nr. 7 til nr. 10 findes }
    Valgte := Valgte + Streng[I]; 
END;

Afhængig af, hvordan du vil have det vist, kan du placere en Label
på din form og kode i programmet: Label1.Caption := Valgte;
Avatar billede jaweni Nybegynder
16. januar 2004 - 22:58 #11
Glemsomhed!

Strengen, der checkes skal være på 10 tegn eller mere.
Ellers får du en fejlmelding ved programafviklingen.

Koden skal være:

FUNCTION Select(TxtIn : String): String;
VAR
  TxtUd : String[4];
BEGIN
  IF Length(TxtIn) < 4 THEN
    Result := 0
  ELSE BEGIN
    TxtUd := ''; 
    FOR I := 7 TO 10 DO  { tegnene fra nr. 7 til nr. 10 findes }
      TxtUd := TxtUd + Streng[I]; 
  END;
  Result := TxtUd; {TxtUd kommer retur til dit program.
END;

Håber, at dette hjælper dig videre.
Avatar billede hrc Mester
17. januar 2004 - 11:10 #12
const
  Vowels : set of char = ['A', 'E', 'I', 'O', 'U', 'Y', 'Æ', 'Ø', 'Å'];

function GetVowels(const aSt : string) : string;
var
  i,lgd : integer;
begin
  lgd := length(aSt);
  if (lgd >= 4) and (lgd <= 10) then
    for i := 4 to length(aSt) do
      if (UpperCase(aSt[i]) in Vowel) then
        result := result + aSt[i]; // Result's zero by default. No need to initialize
end;
Avatar billede nop Nybegynder
19. januar 2004 - 11:24 #13
res:=copy(str,7,4); //henter tegnene 7,8,9,10 fra str til result-var.
Avatar billede hreiff Nybegynder
27. januar 2004 - 16:14 #14
var glstreng,nystreng: string;

begin
  glstreng := 'abcdefghijklmnopqrst';
  nystreng := copy(glstreng,7,4);
  showmessage(nystreng);
end;


copy kopierer en del af en streng, her fra position 7 og 4 tegn frem, dvs 'ghij'
Avatar billede nidyahou Praktikant
07. februar 2004 - 15:21 #15
hej, jeg har et lignende problem... jeg skal have talt hvor mange gange tegnet | er i en tekst og så skal der lægges 3 til antallet... hvis det er et krav at dette spørgsmål skal oprettes seperat af pointmæssige årsager gør jeg med glæde det...
Avatar billede nidyahou Praktikant
07. februar 2004 - 15:40 #16
jeg opretter mit eget spg, undskylder for forstyrrelsen
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