Liebe alle,
ich würde mich über eure Hilfe sehr freuen. Ich habe das folgende Problem. Ich arbeite derzeit mit Transkripten, wo ich 150-Wort-Absätze einfügen muss.
Beispiel:
<P1> Hallo, wie geht es Ihnen?
<P2> Danke, das Wochenende war hart.
<P1> Was ist passiert?
..... usw.
Nun muss ich nach insgesamt 150 Wörtern einen Absatz einfügen oder alternativ eine Linie o.ä. Das Problem allerdings: "<P1>" und "<P2>" darf nicht mitgezählt werden. Könnte man mit Lazarus ein entsprechendes Programm schreiben?
Im Netz finde ich einiges zu countwords, allerdings keinerlei Hinweise wie man bestimmte Zeichenketten ausschließt und dann eine Leerzeile einfügt. Hat jemand von euch zufällig eine einfache Lösung dafür? Lazarus ist noch Neuland für mich.
Über jede Hilfe wäre ich unglaublich dankbar.
Lieben Gruß,
Totti
Text-Segmentierung
Re: Text-Segmentierung
Eine mit steigender Größe sich arg verlangsamende Variante wäre z.B.:
Code: Alles auswählen
program Project1;
uses strutils;
const
Orig = '<P1> Hallo, wie geht es Ihnen?' + LineEnding +
'<P2> Danke, das Wochenende war hart.' + LineEnding +
'<P1> Was ist passiert?';
var
s, Dummy: String;
Nr, Cnt: Integer;
begin
Cnt := 0;
for Nr := 1 to WordCount(Orig, [' ']) do
begin
Dummy := ExtractWord(Nr, Orig, [' ']);
s := s + Dummy + ' ';
if (Dummy <> '') and (Dummy <> '<P1>') and (Dummy <> '<P2>') then
Inc(Cnt);
if Cnt = 3 then // <-- hier könnte auch 150 stehen
begin
s := s + '--- ';
Cnt := 0;
end;
end;
WriteLn(s);
end.
Code: Alles auswählen
type
TLiveSelection = (lsMoney, lsChilds, lsTime);
TLive = Array[0..1] of TLiveSelection;