Text-Segmentierung

Für allgemeine Fragen zur Programmierung, welche nicht! direkt mit Lazarus zu tun haben.

Text-Segmentierung

Beitragvon TottiLazarus » 13. Feb 2017, 20:20 Text-Segmentierung

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
TottiLazarus
 
Beiträge: 1
Registriert: 13. Feb 2017, 20:17

Beitragvon Michl » 13. Feb 2017, 21:07 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; 
Michl
 
Beiträge: 2192
Registriert: 19. Jun 2012, 11:54
OS, Lazarus, FPC: Win7 Laz 1.7 Trunk FPC 3.1.1 Trunk | 
CPU-Target: 32Bit/64bit
Nach oben

• Themenende •

Zurück zu Programmierung



Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 1 Gast

cron
porpoises-institution
accuracy-worried