30. maj 2002 - 21:04Der er
30 kommentarer og 2 løsninger
Finde forskelle?
Jeg har et program der har to strenge:
A som indeholder:
Linie4 Linie3 Linie2 Linie1
og B som indeholder:
Linie5 Linie4 Linie3 Linie2
De linier kunne indeholde hvad som helst, men det der betyder noget er, at der i B loades en "ny" version af A, f.eks. her er der tilføjet en ekstra linie i toppen (og der er forsvundet en i bunden) - lidt ligesom en chat f.eks.
Men jeg vil gerne have en funtion der tilføjer alle ændringer til et memo, f.eks. Så ledes at memo'et indeholder:
Du skal lave en variabel der hedder noget med linie, og du kan jo definere en streng som str" et eller andet"; så skal have variabler for denne memo du vil lave, og så tælle op med en Integer, hver gang at der har været tilføjet en linie, med en if-sætning. Eller du kan kontrollere OM der er tilføjet noget med IF Linie1 <> Linie2 Then write forskel til fil...var det den form for Idee du mente eller ville du have en færdig "function" ? mvh Humpfrey
Så kan du ikke lave det som en "Function" men er nød til at lave en "Procedure", hvor den læser en linie af gangen uanset hvor mange der bliver tastet ind.
Hvad er det den læser ? noget som bliver tastet ind her og nu, ? og hvad er det du vil med det ? gemme det i en logfil ? sortere det ? skrive det tilbage til en webside ? Hvis du skriver en programstump, hvis opgave det er at læse i en fil ( det er jo en fil, selv om det er en webside), så udføres dette med cpu hastighed. Eller har jeg misforstået ?
Jeg har en timer der er sat til 5 minutter... Hver gang den aktiveres loades en hjemmeside - en tagwall, hvor formatet er:
UserName - Besked bla bla bla... UserName - Besked2 blabla
Når der tilføjes nye beskeder bliver de skrevet til toppen... Derfor skal jeg have et memo der opsamler samtlige beskeder efter hinanden - dvs. chekker for nye beskeder og hvis der e, bli' r de tilføjet i bunden eller toppen af memo'et...
lad mig fortælle hvad jeg ahve forestillet mig, så kan du måske hjælpe med lidt source..
Jeg har et memo med de ti nyeste beskeder (standard fra tagwallen - 10 beskeder pr. side) Hver linie i memo'en repræsentere et indlæg.. Altså 10 indlæg i et memo.. Jeg har et andet memo hvor den skal sammenligne de ti sidste linier med de ti linier fra den nyopdaterede tagwall - chekke om der er kommet nye indlæg, er der det, skal de tilføjes til memo'et...
function ErDerForskel: Boolean; var I, J: Integer; begin Result := False; for I := 0 to Memo1.Lines.Count -1 do for J := 0 to Memo2.Lines.Count -1 do begin Result := Memo1.Lines.Strings[I] <> Memo2.Lines.Strings[J]; if Result then Exit; end; end;
Problemet i din funktion er, at hvis der bliver tilføjet en linie, bliver der en uoverensstemmelse i alle linier, således at det vil ligne der er 10 nye ændringer...
Hvis vi ser på den som et logprogram, som logger alle beskeder til en log... Den chekker hvert 5. min for nye beskeder på siden og skriver de nye beskeder i et memo
Så du vil altså finde ud af hvor mange nye indlæg der er kommet...
function AntalNyeIndlaeg: Integer; var I: Integer; begin Result := -1; for I := 0 to Memo1.Lines.Count -1 do if Memo1.Lines.Strings[I] = Memo2.Lines.Strings[0] then begin Result := I; Break; end; end;
procedure TForm1.ButtonClick(Sender: TObject); var I: Integer; begin for I := AntalNyeIndlaeg -1 downto 0 do Memo2.Lines.Insert(0, Memo1.Lines.Strings[I]); end;
TmpStr := Memo1.Text; while pos('<',TmpStr) >= 0 do begin delete(TmpStr,pos('<',TmpStr)-1,pos('>',TmpStr)-pos('<',TmpStr)+1); end; Memo1.Text := TmpStr;
Det er min funktion til at slette al' html - men den ser ikke ud til at virke.. Den laver en uendelig løkke??
Fjern >=, så der i stedet står <> i din while dekleration...
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.