Robię odtwarzanie napisów do filmu. Mam pewien probelm.
Najpierw rozpozneję rodzaj napisów 000:tekst lub {0}{0}tekst
potem do jednej listy dodaję czas wyświetlenia, a do drugiej tekst. I mam problem z tym drugim rodzajem. Chcę, żeby czas dodawał się w formacie GSS, więc muszę zamienić ten drugi.
Robię to tak
for i:=0 to ListaNapsiow.Items.Count-1 do
begin
a:=-1;
b:=-1;
for j:=0 to StrLen(pchar(ListaNapsiow.Items.Strings[i])) do
begin
if Copy(pchar(ListaNapsiow.Items.Strings[i]),j,1) = '{' then
if a=-1 then
a:=j;
if Copy(pchar(ListaNapsiow.Items.Strings[i]),j,1) = '}' then
if b=-1 then
b:=j;
end;
// z konwersją na G:MM:SS
aValue := strtoint(Copy(pchar(ListaNapsiow.Items.Strings[i]),a+2,b-a-2));
aHt := avalue div 3600;
aMt := (avalue mod 3600) div 60;
aSt := (avalue mod 3600) mod 60;
PoczatekNapisow.Items.Add(Format('%d:%2.2d:%2.2d', [aHt, aMt, aSt]));
end;
I problem w tym, że to mi źle przerabia czas. Trochę za dużo (ostatni napis ma około 3300)
I Jak to poprawić? Wiem, że nie wiadomo wiele z mojego postu, ale może ktoś zrozumie. PS: w kodzie jest zawarte tylko dodawanie czasu, a teksty do innej listy nie