Avatar billede cork Nybegynder
21. maj 2002 - 09:50 Der er 11 kommentarer og
1 løsning

Conventering

Jeg kæmper lige nu med at lave et program der kan "oversætte" tegn. F.eks. når jeg skriver +#C skal det oversættes til 50. Og hvis jeg sætning hedder #-A B b# så skal det oversættes del for del. Så der tilsidst kommer til at stå 50 1 45...
Jeg vil gerne have at det kommer til at forgå i to edit bokse eller to memo bokse... Og en Button til at udføre handlingen...
Avatar billede borrisholt Novice
21. maj 2002 - 09:53 #1
hvor få du de tal fra ?
Avatar billede hreiff Nybegynder
21. maj 2002 - 09:56 #2
Hvordan fremkommer tallet ud fra bogstavet? C=50, B=1 og b=45
Avatar billede cork Nybegynder
21. maj 2002 - 10:05 #3
Det er ringetoner til Ericsson. Jeg har fundet en del og i stedet for at lære at et 6 tal er c og at 6# er 60 så vil jeg helle have det oversat...
Avatar billede hreiff Nybegynder
21. maj 2002 - 10:37 #4
procedure TForm1.Button1Click(Sender: TObject);

Function EricStr(S: String): string;

const
  DelChar = ' '; {mellemrum}
var
  CharPos: Integer;
  temp: string

function conv(s:string):string
begin
  if      s='C' then result:='50'
  else if s='B' then result:='1'
  else if s='b' then result:='45'
  else s:='';
end;

Begin
  temp := '';
  While Length(s) > 0 do
  begin
    CharPos := Pos(DelChar,s);
    if CharPos <> 0 then
    begin
      temp := temp + Conv(Copy(s,1,CharPos-1))+ DelChar;
      Delete(s,1,CharPos);
    end
    else
    begin
      temp := Conv(s);
      s := '';
    end;
  end;
  result := temp;
End;

begin
  Edit2.text := EricStr(Edit1.text);
end;
Avatar billede borrisholt Novice
21. maj 2002 - 11:04 #5
Var point antaller ikke en anelse oppusted få sådan et spm ? Det er ikke en kritik af dig hreiff, end sige jeg ikke onder dig dem. Jeg synes blot det nærmer var et 30 points spm ...

Nå ja sådan er der så meget ... :-)

Jens B
Avatar billede hreiff Nybegynder
21. maj 2002 - 11:15 #6
Jo, det var måske lidt voldsomt. Ellers ender det jo med at man skal af med 3-400 point for hjælp til de rigtig svære ting.
Avatar billede cork Nybegynder
22. maj 2002 - 09:02 #7
Jeg skulle bruge det sprøgmål meget hurtigt. Og da jeg ikke viste det skulle jeg bruge hjælp. For mig var det et svært spørgsmål, jeg beklager at det ikke var svært nok for jer. Men det var det måske alligevel, for jeg mangler stadig sådan at man kan skrive en HEL linie f.eks. #C +E a B b og så bliver det HELE oversat til 50 40 1 25 osv... Nu kan jeg kun skrive et tegn...
Avatar billede hreiff Nybegynder
22. maj 2002 - 09:41 #8
Det er ok.
Det skulle være lavet så man kunne skrive en hel linje af tegn, feks. som du skriver
#C +E a B b
i conv funktionen skal du bare have alle kombinationerne sat ind i if-sætningen.

Men jeg fik vist lavet en lille fejl her:

Begin
  temp := '';
  While Length(s) > 0 do
  begin
    CharPos := Pos(DelChar,s);
    if CharPos <> 0 then
    begin
      temp := temp + Conv(Copy(s,1,CharPos-1))+ DelChar;
      Delete(s,1,CharPos);
    end
    else
    begin
(******************)
      temp := temp+Conv(s);
(******************)
      s := '';
    end;
  end;
  result := temp;
End;

hvilket betyder at den kun tog det sidste tegn.

Håber at det virker nu - ellers vender du bare tilbage.

//hreiff
Avatar billede hreiff Nybegynder
22. maj 2002 - 09:52 #9
Jeg har testet det nu, og det virker som det skal (ihvertfald hos mig).
Avatar billede hreiff Nybegynder
22. maj 2002 - 10:15 #10
Hvis løsningen med if-sætningerne bliver for overskuelig, kan du lave en array med alle tonerne:

Const
  Antal = 3;
  Tone: array[1..Antal,1..2] of string =(
  ('#C','50'),
  ('B','1'),
  ('b','45'));

og så ændre conv-funktionen til følgende:

function conv(s:string):string;
var i : integer;
begin
  result := '';
  for i := 1 to antal do
    if Tone[i,1] = s then Result := Tone[i,2];
end;
Avatar billede borrisholt Novice
22. maj 2002 - 10:16 #11
Er der ikke nogen der kan skrive en dims der nedsætter tempraturen her på kontoret ?

jens B
Avatar billede hreiff Nybegynder
22. maj 2002 - 10:22 #12
Hent en pose isterninger i fryseren og hæng den op i en snor over din plads - så vil kølig luft dale ned over dig.
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