AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

extended to string

Ein Thema von btbe · begonnen am 11. Nov 2004 · letzter Beitrag vom 11. Nov 2004
Antwort Antwort
Seite 1 von 2  1 2      
btbe

Registriert seit: 15. Okt 2004
20 Beiträge
 
#1

extended to string

  Alt 11. Nov 2004, 22:35
Hab im ganzen forum gesucht aber nichts gefunden was funktioniert
Muss einen wert des in nem array steht umrechen wenn ich irgendetwas versuche bekomm ich
Zitat:
Incompatible types: 'Extended' and 'String'
ausgespuckt....


Hier mein quellcode:

Delphi-Quellcode:
unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, OoMisc, AdPort, StdCtrls, ExtCtrls;

type
  TForm1 = class(TForm)
    Label1: TLabel;
    Label2: TLabel;
    Label3: TLabel;
    Label4: TLabel;
    Label5: TLabel;
    Label6: TLabel;
    ComPort: TApdComPort;
    Label7: TLabel;
    Label8: TLabel;
    Label9: TLabel;
    Label10: TLabel;
    Label11: TLabel;
    Label12: TLabel;
    Timer1: TTimer;
    Label13: TLabel;
    Edit1: TEdit;
    Button1: TButton;
    Label14: TLabel;
    Label15: TLabel;
    Label16: TLabel;
    Label17: TLabel;
    Label18: TLabel;
    Label19: TLabel;
    Label20: TLabel;
    Label21: TLabel;
    Label22: TLabel;
    Procedure Ordne(Zeichenkette:String);
    procedure ComPortTriggerAvail(CP: TObject; Count: Word);
    procedure Timer1Timer(Sender: TObject);
    procedure Button1Click(Sender: TObject);
    procedure FormCreate(Sender: TObject);
  private
    { Private declarations }
  public
  GPGGA:Array[1..25] Of String;
    { Public declarations }
  end;

var
  Form1: TForm1;
  z: string;
  x, y: Integer;
  Data: String;
  I: Integer;
  Ergebnis1: TStringlist;
  ggaline: String[200];
  gsaline: String[200];
  rmcline: String[200];
  speed: string;
implementation

{$R *.dfm}


Procedure TForm1.Ordne(Zeichenkette:String);
  var i,j:integer;
      ZS : String;
      array_seen : boolean;
begin
  ZS :='';
  array_seen := false;
  j:=1;
  for i:=1 to length(Zeichenkette) do
    begin
      if array_seen then
        if zeichenkette[i] =',then
          begin
            if ZS <> 'then
            GPGGA[j] := ZS;
            j:=j+1;
            ZS := '';
          end
        else
          zs := zs+zeichenkette[i]
       else
         if zeichenkette[i] =',then array_seen := true;
     end;
end;


procedure TForm1.ComPortTriggerAvail(CP: TObject; Count: Word);
begin
  { OnTriggerAvail; Read the data }
 for I:= 0 to Count -1 do
  begin
    Data := ComPort.GetChar;
   z := z + Data;
 if Data = #10 then
  begin

   Ergebnis1 := TStringlist.Create;
   if pos('GPGGA',z) > 0 then
    ggaline := z;
   if pos('GPGSA',z) > 0 then
    gsaline := z;
   if pos('GPRMC',z) > 0 then
    rmcline := z;
   z := '';
  end;
 end;
end;

procedure TForm1.Timer1Timer(Sender: TObject);
type
   TStringDynArray = array of string;

begin
ordne(ggaline);
Label1.Caption := GPGGA[1];
Label2.Caption := GPGGA[2] + GPGGA[3];
Label3.Caption := GPGGA[4] + GPGGA[5];
Label4.Caption := GPGGA[6];
Label5.Caption := GPGGA[7];
Label6.Caption := GPGGA[11] + GPGGA[12];
ordne(gsaline);
Label15.Caption := GPGGA[2];
ordne(rmcline);
Label16.Caption := GPGGA[2];
Label17.Caption := GPGGA[7];
Label18.Caption := GPGGA[9];

end;


procedure TForm1.Button1Click(Sender: TObject);
begin
ComPort.ComNumber := strtoint(Edit1.Text);
end;

procedure TForm1.FormCreate(Sender: TObject);
begin
speed := '0';
end;

end.
hoffe mir kann jemand helfen!

thnx btbe
  Mit Zitat antworten Zitat
Benutzerbild von Union
Union

Registriert seit: 18. Mär 2004
Ort: Luxembourg
3.487 Beiträge
 
Delphi 7 Enterprise
 
#2

Re: extended to string

  Alt 11. Nov 2004, 22:38
Und wo bitte tritt der Fehler auf? Versuchst Du dort über Modem GPS Daten einzulesen...
Ibi fas ubi proxima merces
sudo /Developer/Library/uninstall-devtools --mode=all
  Mit Zitat antworten Zitat
btbe

Registriert seit: 15. Okt 2004
20 Beiträge
 
#3

Re: extended to string

  Alt 11. Nov 2004, 22:44
Oh sorry, so tritt kein fehler auf, aber wenn ich halt umrechen will:

Delphi-Quellcode:
ordne(rmcline);
Label16.Caption := GPGGA[2];
Label17.Caption := round(GPGGA[7] * 1,852);
Label18.Caption := GPGGA[9];
hab alles mögliche probiert (floatostr(), floattoint(), strtofloat(), floattostf(),....)
bin verzweifelt
  Mit Zitat antworten Zitat
Benutzerbild von Dani
Dani

Registriert seit: 19. Jan 2003
732 Beiträge
 
Turbo Delphi für Win32
 
#4

Re: extended to string

  Alt 11. Nov 2004, 22:47
Zitat von btbe:
Oh sorry, so tritt kein fehler auf, aber wenn ich halt umrechen will:

Delphi-Quellcode:
ordne(rmcline);
Label16.Caption := GPGGA[2];
Label17.Caption := round(GPGGA[7] * 1,852);
Label18.Caption := GPGGA[9];
hab alles mögliche probiert (floatostr(), floattoint(), strtofloat(), floattostf(),....)
bin verzweifelt
Hi!

Label17.Caption := IntToStr(round(StrToFloat(GPGGA[7]) * 1.852);
Dani H.
At Least I Can Say I Tried
  Mit Zitat antworten Zitat
Benutzerbild von alcaeus
alcaeus

Registriert seit: 11. Aug 2003
Ort: München
6.537 Beiträge
 
#5

Re: extended to string

  Alt 11. Nov 2004, 22:48
Hi btbe,

der Fehler liegt in dieser Zeile:
Label17.Caption := round(GPGGA[7] * 1,852); GPGGA[7] ist ein String, und das Ergebnis muss wieder ein String sein, also sollte die Zeile so lauten: Label17.Caption := FloatToStr(round(StrToFloat(GPGGA[7]) * 1,852)); Greetz
alcaeus
Andreas B.
Die Mutter der Dummen ist immer schwanger.
Ein Portal für Informatik-Studenten: www.infler.de
  Mit Zitat antworten Zitat
Benutzerbild von Union
Union

Registriert seit: 18. Mär 2004
Ort: Luxembourg
3.487 Beiträge
 
Delphi 7 Enterprise
 
#6

Re: extended to string

  Alt 11. Nov 2004, 22:52
Zitat von btbe:
Oh sorry, so tritt kein fehler auf, aber wenn ich halt umrechen will:

Delphi-Quellcode:
ordne(rmcline);
Label16.Caption := GPGGA[2];
Label17.Caption := round(GPGGA[7] * 1,852);
Label18.Caption := GPGGA[9];
hab alles mögliche probiert (floatostr(), floattoint(), strtofloat(), floattostf(),....)
bin verzweifelt
Was steht denn in GPGGA[7] drin ? Normal wäre der Aufbau bei einem NMEA.GPG-Satz im englischen Format. Also sind die Strings '123.456' und das geht auf dem deutschen Windows nicht umzuwandeln. Entweder Du ersetzt den Punkjt durch ein Komma (dann funktioniert es aber wieder nur bei Localen mit ebendieser Definition) oder Du änderst die Locale-Einstellungen vor der Umwandlung, setzt als Decimal Delimiter den Punkt und hinterher wieder zurück. Zum Testen kannst Du ja mal in Deiner Systemsteuerung das Dezimaltrennzeichen auf den Punkt setzen, dann läuft das Programm wahrscheinlich auch ohne Änderung.
Ibi fas ubi proxima merces
sudo /Developer/Library/uninstall-devtools --mode=all
  Mit Zitat antworten Zitat
btbe

Registriert seit: 15. Okt 2004
20 Beiträge
 
#7

Re: extended to string

  Alt 11. Nov 2004, 22:53
Dann bekomm ich eine "Debugger Exception Notification":
Zitat:
Project Project.exe raised exception class EConvertError with message''000.0' is not a valid floating point value'...
dazu ist zu sagen, dass der wert nur 000.0 ist, da dies der geschwindigkeitswert des gps ist und es sich natürlich an meinem pc nicht bewegt!
  Mit Zitat antworten Zitat
Benutzerbild von Dani
Dani

Registriert seit: 19. Jan 2003
732 Beiträge
 
Turbo Delphi für Win32
 
#8

Re: extended to string

  Alt 11. Nov 2004, 22:59
Man kann den Dezimal Seperator auch "manuell" setzen.
Delphi-Quellcode:
procedure TForm1.FormCreate(Sender: TObject);
begin
 DecimalSeperator := '.';
end;
Dani H.
  Mit Zitat antworten Zitat
Benutzerbild von Union
Union

Registriert seit: 18. Mär 2004
Ort: Luxembourg
3.487 Beiträge
 
Delphi 7 Enterprise
 
#9

Re: extended to string

  Alt 11. Nov 2004, 22:59
Zitat von btbe:
Dann bekomm ich eine "Debugger Exception Notification":
Zitat:
Project Project.exe raised exception class EConvertError with message''000.0' is not a valid floating point value'...
dazu ist zu sagen, dass der wert nur 000.0 ist, da dies der geschwindigkeitswert des gps ist und es sich natürlich an meinem pc nicht bewegt!
Dann verwende doch StrToFloatDef(), da kannst Du einen Vorgabewert (z.B. 0) setzen und es gibt keine Exception.
Ibi fas ubi proxima merces
sudo /Developer/Library/uninstall-devtools --mode=all
  Mit Zitat antworten Zitat
btbe

Registriert seit: 15. Okt 2004
20 Beiträge
 
#10

Re: extended to string

  Alt 11. Nov 2004, 23:00
Super Union scheint zu funzen muss halt morgen noch mal bei der fahrt testen aber ich bekomm schonmal einfach 0 ausgegeben! Hast du zufällig ne schnelle möglichkeit den '.' durch ein komma zu ersetzen? Muss keine funktion sein, da ich es sowieso nur für diesen einen wert brauche! Wäre nur praktisch, wenn ich das umwandeln könnte, da ich das programm ja auf jedem beliebigen rechner verwenden will und nicht auf jedem rechner erst das dezimalzeichen umstellen will...

schonmal danke!
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 13:16 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz