30. april 2008 - 21:25
Der er
4 kommentarer og 2 løsninger
Flytte tekst x antal tegn af gangen
Jeg er ved at lave understøttelse for sms'er over 160 tegn i mit program men jeg har stirret mig godt og grundig blind på følgende udfordring: if Length(OrgMsg)>160 then AmountToSend := 160 else AmountToSend := Length(OrgMsg); StrMove(PChar(BitOfMsg),PChar(OrgMsg),AmountToSend); Hvad jeg gerne ville opnå er at flytte x antal tegn fra OrgMsg til BitOfMsg og samtidig forkorte Orgmsg med den flyttede streng. Hmm... Helt optimalt skulle man vel egentlig måle på om sidste ord er for langt og så gå tilbage til sidste mellemrum. Nogen der har en hurtig løsning ved hånden? Eller en idé til at komme videre? På forhånd tak Jesper
Annonceindlæg tema
Offentlig digitalisering
Fra effektivisering til digital suverænitet. Hvordan skaber det offentlige en digital fremtid med AI, sikkerhed og kontrol i centrum?
30. april 2008 - 22:05
#1
proev: OrgMsg := Copy(OrgMsg, AmountToSend + 1, Length(OrgMsg) - AmountToSend);
Hmmm... ikke helt hvad jeg umiddelbart havde i tankerne. Idéen er at hvis en besked er f.eks. 200 tegn (i OrgMsg) så bliver AmountToSend := 160 og de første 160 tegn i OrgMsg bliver derved flyttet over i BitOfMsg, hvilket efterlader de sidste 40 tegn i OrgMsg som så bliver sendt i anden iteration.
var OrgMsg,BitOfMsg : string; AmountToSend : integer; begin if Length(OrgMsg)>160 then AmountToSend := 160 else AmountToSend := Length(OrgMsg); BitOfMsg:=Copy(OrgMsg,1,AmountToSend); Delete(OrgMsg,1,AmountToSend); end;
Sorry kroning, burde ha opdateret her hurtigere, var selv kommet frem til næsten det samme for halv times tid siden baseret på arnes svar: BitOfMsg := Copy(OrgMsg, 0, AmountToSend); OrgMsg := Copy(OrgMsg, AmountToSend + 1, Length(OrgMsg) - AmountToSend); Men smid et svar begge to, så får du 10 af pointene kroning.
Kurser inden for grundlæggende programmering