Autor Beitrag
Tabakbrummel
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 124

win 7
Turbo Delphi, VS 20010 Express
BeitragVerfasst: Mo 14.05.07 13:44 
Hallo

Mein Problem ist, ich habe ein string z.b. 52° 31"(°=grad und "= min) und möchte ihn in 52,31 Formatieren.

_________________
MfG
Tabakbrummel
freak4fun
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 604
Erhaltene Danke: 4

Win 7 Pro
VS 2013 Express, Delphi, C#, PHP, Java
BeitragVerfasst: Mo 14.05.07 14:01 
ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
function Transform(AString: String): String;
begin
  Result := StringReplace(AString, '° '',', [rfReplaceAll]);
  Result := StringReplace(Result, '"''', [rfReplaceAll]);
end;

procedure TForm1.Button3Click(Sender: TObject);
begin
  ShowMessage(Transform('52° 31"'));
end;


MfG
freak

_________________
"Ich werde auf GAR KEINEN Fall…!" - "Keks?" - "Okay, ich tu's."
i++; // zaehler i um 1 erhoehen
Tastaro
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 414
Erhaltene Danke: 23



BeitragVerfasst: Mo 14.05.07 14:04 
Öhm - warum willst du das so umwandeln?
51°31" <> 51,31°

Beste Grüße
Tastaro
Tabakbrummel Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 124

win 7
Turbo Delphi, VS 20010 Express
BeitragVerfasst: Mo 14.05.07 14:36 
Hallo Tastaro

Ich möchte die 53°31" in 52,31 umwandeln, weil ich mit Gleitkomma-Typen weiter rechne.
Die 53°31" werden nämlich im MaskEdit eingegeben(__°__" sind fest im MaskEdit).

_________________
MfG
Tabakbrummel
Lannes
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 2352
Erhaltene Danke: 4

Win XP, 95, 3.11, IE6
D3 Prof, D4 Standard, D2005 PE, TurboDelphi, Lazarus, D2010
BeitragVerfasst: Mo 14.05.07 14:52 
Hallo,

wenn ich in das MaskEdit eingeben müsste, würde ich Minuten angeben und nicht den Dezimalanteil.

Damit stehen Dir beide Möglichkeiten offen:
//blCalc = True, dann Minuten umrechnen
ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
26:
function GradStrToFloatStr(s: String;blCalc: Boolean): String;
var z,i : Integer;
    e,ee : Extended;
begin
  SetLength(Result,Length(s));
  i := 1;
  for z := 1 to Length(Result) do
    if s[z] in ['0'..'9','°'then
      begin
      if s[z] = '°' then
        Result[i] := ','
        else
          Result[i] := s[z];
      inc(i);
      end;
  SetLength(Result,Pred(i));
  if (blCalc) and (Result <> ''then
    begin
    e := StrToFloat(Result);
    ee := Frac(e)/0.6;
    Result := Format('%f',[Trunc(e)+ee]);
    end;
end;

//...
  showmessage(GradStrToFloatStr('12° 34"',True));

_________________
MfG Lannes
(Nichts ist nicht Nichts) and ('' <> nil ) and (Pointer('') = nil ) and (@('') <> nil )
Tabakbrummel Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 124

win 7
Turbo Delphi, VS 20010 Express
BeitragVerfasst: Mo 14.05.07 15:05 
Hallo Alle

Erst mal Danke für die vielen Antworten. :beer: Es funktioniert, noch mal vielen Dank.

_________________
MfG
Tabakbrummel