function WordsInText(s_text: String): Integer; var i_pos: Integer; // Position of search pattern in string i_count: Integer; // Counter s_temp: String; // Temporary workstring begin s_temp := Trim(s_text); repeat i_pos := Pos(' ', s_temp); if i_pos > 0 then begin Inc(i_count); s_temp := Trim(Copy(s_temp, i_pos + 1, Length(s_temp) - i_pos); end // if i_pos > 0 else begin Inc(i_count); end; // else until (i_pos = 0); result := i_count; end; // WordsInText
Eksempel : i_NumberOfWords := WordsInText(Memo.Text);
Antal punktummer :
function PeriodesInText(s_text: String): Integer; var i_pos: Integer; // Position of search pattern in string i_count: Integer; // Counter s_temp: String; // Temporary workstring begin s_temp := Trim(s_text); repeat i_pos := Pos('.', s_temp); if i_pos > 0 then begin Inc(i_count); s_temp := Trim(Copy(s_temp, i_pos + 1, Length(s_temp) - i_pos); end // if i_pos > 0 else begin Inc(i_count); end; // else until (i_pos = 0); result := i_count; end; // PeriodesInText
Eksempel : i_NumperOfPeriodes := PeriodesInText(Memo.Text);
Antal ord med 5 tegn eller flere i en streng :
function LongWordsInText(s_text: String; i_length: Integer): Integer; var i_pos: Integer; // Position of search pattern in string i_count: Integer; // Counter s_temp: String; // Temporary workstring begin s_temp := Trim(s_text); repeat i_pos := Pos(' ', s_temp); if i_pos > 0 then begin if i_pos > i_length then begin Inc(i_count); end; // if i_pos > i_length s_temp := Trim(Copy(s_temp, i_pos + 1, Length(s_temp) - i_pos); end // if i_pos > 0 else begin if PeriodesInText(s_temp) > 0 then begin if Length(s_temp) > i_length then begin Inc(i_count); end; // if Length(s_temp) > i_length end // if PeriodesInText(s_temp) > 0 else begin if Length(s_temp) >= i_length then begin Inc(i_count); end; // if Length(s_temp) >= i_length end; // else end; // else until (i_pos = 0); result := i_count; end; // LongWordsInText
Eksempel : i_NumberOfLongWords := LongWordsInText(Memo.Text, 5);
procedure CountIt(const Text : string; var NumWords,NumDots,NumBigWords : integer); var p : PChar; WordSize : integer; begin NumWords := 0; NumDots := 0; NumBigWords := 0; p := PChar(Text); while p^ <> #00 do begin while p^ in [' ',#9] do Inc(p); // skip white space case p^ of '.' : begin Inc(NumDots); Inc(p); end; #10,#13 : Inc(p); #0 : Break; else WordSize := 0; while not (p^ in [' ','.',#9,#0]) do begin Inc(p); Inc(WordSize); end; Inc(NumWords); if WordSize > 5 then Inc(NumBigWords); end; end; end;
ps: casen med #10,#13 er for at undgå at tælle linieskift med som ord.
Men der er mange muligheder for smukkesering...
Synes godt om
Ny brugerNybegynder
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.