Avatar billede skovjuul Nybegynder
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
Avatar billede arne_v Ekspert
30. april 2008 - 22:05 #1
proev:

OrgMsg := Copy(OrgMsg, AmountToSend + 1, Length(OrgMsg) - AmountToSend);
Avatar billede skovjuul Nybegynder
01. maj 2008 - 23:46 #2
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.
Avatar billede kroning Nybegynder
02. maj 2008 - 00:36 #3
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;
Avatar billede skovjuul Nybegynder
02. maj 2008 - 01:21 #4
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.
Avatar billede arne_v Ekspert
02. maj 2008 - 02:09 #5
svar
Avatar billede kroning Nybegynder
02. maj 2008 - 10:16 #6
k
Avatar billede Ny bruger Nybegynder

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.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester