AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Sprachen und Entwicklungsumgebungen Object-Pascal / Delphi-Language Delphi Alles, was vor dem Komma steht, abschneiden
Thema durchsuchen
Ansicht
Themen-Optionen

Alles, was vor dem Komma steht, abschneiden

Ein Thema von Rapthor · begonnen am 19. Apr 2003 · letzter Beitrag vom 19. Apr 2003
Antwort Antwort
Seite 2 von 2     12   
Benutzerbild von Stanlay Hanks
Stanlay Hanks

Registriert seit: 1. Mär 2003
2.078 Beiträge
 
Delphi 2005 Professional
 
#11
  Alt 19. Apr 2003, 17:18
Auch wenn du's schon hast, ich hätte das so gemacht.

Delphi-Quellcode:
function TForm1.KommaCut(Text : String) : String;
 var
 kpos,i: Integer;
 str : String;
 begin
  kpos := pos(',',Text)+1;

  For i:= kpos to Length(Text) do begin
  str := str + Text[i];
  end;
  KommaCut := str;
  end;
Vielleicht hilft dir das ja trotzdem (wenn's funzt).

Bis dann, man ließt sich. Stanlay
  Mit Zitat antworten Zitat
Benutzerbild von d3g
d3g

Registriert seit: 21. Jun 2002
602 Beiträge
 
#12
  Alt 19. Apr 2003, 17:55
Böse, böse (weil: Ländereinstellungenabhängig (bei Dezimalpunkt statt Dezimalkomma bleibt der String so wie er ist), langsam (das sind Strings eben, HugeStrings - wie du sie benutzst - besonders)).
-- Crucifixion?
-- Yes.
-- Good. Out of the door, line on the left, one cross each.
  Mit Zitat antworten Zitat
Benutzerbild von Stanlay Hanks
Stanlay Hanks

Registriert seit: 1. Mär 2003
2.078 Beiträge
 
Delphi 2005 Professional
 
#13
  Alt 19. Apr 2003, 18:07
Ich suche ja speziell nach dem Komma. Wenn man alles vor einem Dezimalpunkt löschen will, muss man das eben ändern. Oder hast du was anderes gemeint?
  Mit Zitat antworten Zitat
Benutzerbild von d3g
d3g

Registriert seit: 21. Jun 2002
602 Beiträge
 
#14
  Alt 19. Apr 2003, 18:12
Nein, genau das. Der Punkt (Wortspiel ) ist ja, dass der Entwickler nicht wissen kann, ob in dem String ein Dezimalpunkt, ein Dezimalkomma oder ein anderes Trennzeichen ist. FloatToStr() richtet sich nämlich nach der Länderzoneneinstellung. Man müsste umständlich über das Win32-API diese Einstellung herausfinden und da die ganze Funktion mit Sicherheit noch langsamer als das einfache int(frac(f) * 100) / 100 ist, ist davon ganz abzuraten.
-- Crucifixion?
-- Yes.
-- Good. Out of the door, line on the left, one cross each.
  Mit Zitat antworten Zitat
Christian Seehase
(Co-Admin)

Registriert seit: 29. Mai 2002
Ort: Hamburg
11.105 Beiträge
 
Delphi 11 Alexandria
 
#15
  Alt 19. Apr 2003, 18:18
Moin Zusammen,

auch wenn's nur Daniels Variante gecodet ist:

Delphi-Quellcode:
  exValue := 0.77625;
  ShowMessage(IntToStr(Trunc(Frac(exValue)*100)));

@d3g
Zitat von d3g:
Man müsste umständlich über das Win32-API diese Einstellung herausfinden...
Nein, muss man nicht

Delphi nimmt einem diese Arbeit beim Programmstart ab, und stellt das Zeichen in der Variablen DecimalSeparator zur Verfügung.
Solange niemand die Einstellung zwischen Programmstart und Anwendug der Variablen geändert hat stimmt der enthaltene Wert.
Tschüss Chris
Die drei Feinde des Programmierers: Sonne, Frischluft und dieses unerträgliche Gebrüll der Vögel.
Der Klügere gibt solange nach bis er der Dumme ist
  Mit Zitat antworten Zitat
Benutzerbild von Stanlay Hanks
Stanlay Hanks

Registriert seit: 1. Mär 2003
2.078 Beiträge
 
Delphi 2005 Professional
 
#16
  Alt 19. Apr 2003, 18:20
Jetzt hab ich kapiert, was du meinst. Aber er hat ja geschrieben:
'Alles vor dem Komma löschen'. Aber du hast natürlich recht. Aber da ich nicht mal wüsste, wie man das mit der API macht, hab ich da gar nicht dran gedacht. Man liest sich, Stanlay.
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 2 von 2     12   


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 19:31 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