// This script looks for split words and places them on the next line. // It looks for the divider character (default "-") at the end of the line. // It then looks for the first space in front of the divider. // The space is replaced by a newline. // The word is unsplit and placed on the next line. // // By Tengo, June 03 '07 program UnSplitWords; // Inline Functions ------------------------------------------------------------ function PosEx(SubStr: string; S: string; Offset: Integer): Integer; var tmp: string; n: Integer; begin result := 0; tmp := copy(s, offset, length(s)-offset-1); n := Pos(SubStr, tmp); if n>0 then result := Offset + n - 1; end; function ReverseString(AText: string): string; var L, I, N: Integer; begin L := Length(AText); N := 1; SetLength(Result, L); for I := L downto 1 do begin Result[N] := AText[i]; N := N+1; end; end; function PosExRev(SubStr: string; S: string; Offset: Integer): Integer; var RevTmp, RevSub: string; n: Integer; begin Result := 0; RevSub := ReverseString(SubStr); RevTmp := ReverseString(copy(S, 1, Offset)); n := Pos(RevSub, RevTmp); if n>0 then result := Offset + 1 - n; end; // Inline Functions end -------------------------------------------------------- const Divider = '-'; CRLF = ''#13''#10; var Index: Integer; SubtitleText: String; DividerPos: Integer; WordStart: Integer; NewText: string; begin for Index := 0 to GetSubtitleCount-1 do begin SubtitleText := GetSubtitleText(Index); DividerPos := PosEx(Divider+CRLF, SubTitleText, 1); while (DividerPos > 0) do begin Wordstart := PosExRev(' ', SubtitleText, DividerPos) + 1; if Wordstart > 0 then begin NewText := Copy(SubtitleText, 1, Wordstart - 2) + CRLF + Copy(SubtitleText, Wordstart, DividerPos - Wordstart) + Copy(SubtitleText, DividerPos + 3, Length(SubtitleText) - DividerPos - 2) ; end; DividerPos := PosEx(Divider+CRLF, NewText, DividerPos); SubtitleText := NewText; end; {while} SetSubtitleText(Index, SubTitleText); end; {for} end.
Страница 1 из 1
Объединенение переносов слов
#1
Отправлено 03 Июнь 2007 - 17:33
Появился новый скрипт для объединения переносов слов в конце строки.
Страница 1 из 1