AGB  ·  Datenschutz  ·  Impressum  







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

Functions-Problem

Ein Thema von Tommy1988 · begonnen am 17. Apr 2008 · letzter Beitrag vom 21. Apr 2008
Antwort Antwort
Tommy1988
(Gast)

n/a Beiträge
 
#1

Functions-Problem

  Alt 17. Apr 2008, 18:33
Also, ich habe mir folgende Function gebaut:

Delphi-Quellcode:
function GVersion(s: String): String;
begin
  while Pos('.', x) > 0 do
    x[Pos('.', s)] := ' ';
  while Pos(' ', x) > 0 do
    Delete(x, Pos(' ', x), 1);
    result := x;
end;
Damit mache ich aus z.B. 1.0.0.0 dann 1000.
So..

Insgesamt führe ich das zwei mal mit zwei verschiedenen Exe-Files aus.

Delphi-Quellcode:
sAppVersion := GVersion(sAppVersion);
sAktVersion := GVersion(sAktVersion);
Das klappt aber nicht, beide Strings bleiben leer.

Ich habe zwar schon eine Lösung gefunden, aber mich würde mal interessieren, warum das so ist?
  Mit Zitat antworten Zitat
Benutzerbild von Die Muhkuh
Die Muhkuh

Registriert seit: 21. Aug 2003
7.332 Beiträge
 
Delphi 2009 Professional
 
#2

Re: Functions-Problem

  Alt 17. Apr 2008, 18:37
Hi,

zuerst einmal verwendest Du eine Variable namens x, die nirgendwo deklariert ist. Zum Zweiten ist Dein Code sehr unperformant. Da kann man deutlich besser machen:

Delphi-Quellcode:
function GVersion(s: String): String;
var
  I: Integer;
begin
  I := Pos('.', s);
  while I > 0 do
  begin
    Delete(s, I, 1);
    I := Pos('.', s);
  end;

  result := s;
end;
  Mit Zitat antworten Zitat
dominikkv

Registriert seit: 30. Sep 2006
Ort: Gundelfingen
1.109 Beiträge
 
Delphi 2007 Professional
 
#3

Re: Functions-Problem

  Alt 17. Apr 2008, 18:41
Delphi-Quellcode:
function GVersion(s: String): String;
begin
  result := StringReplace(s, '.', '', [rfReplaceAll]);
end;
Dominik
Wer anderen eine Grube gräbt, hat ein Gruben-Grab-Gerät!
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.625 Beiträge
 
Delphi 12 Athens
 
#4

Re: Functions-Problem

  Alt 17. Apr 2008, 18:45
Delphi-Quellcode:
function GVersion(const s: String): String;
begin
  result := StringReplace(s, '.', '', [rfReplaceAll]);
end;
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
Christian Seehase
(Co-Admin)

Registriert seit: 29. Mai 2002
Ort: Hamburg
11.117 Beiträge
 
Delphi 11 Alexandria
 
#5

Re: Functions-Problem

  Alt 17. Apr 2008, 19:49
Moin Zusammen,

dann will ich auch mal

Delphi-Quellcode:
function RemoveChar(const AsValue : string;const AcToRemove : Char) : string;

var
  iFrom : integer;
  iTo : Integer;

begin
  SetLength(Result,Length(AsValue));
  iTo := 0;
  for iFrom := 1 to Length(AsValue) do begin
    if AsValue[iFrom] <> AcToRemove then begin
      Inc(iTo);
      Result[iTo] := AsValue[iFrom];
    end;
  end;
  SetLength(Result,iTo);
end;
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
oldmax

Registriert seit: 27. Apr 2006
Ort: Gieboldehausen
167 Beiträge
 
#6

Re: Functions-Problem

  Alt 18. Apr 2008, 06:48
Hi
Eure Programmhilfen in Ehren, aber die Frage lautet: Was mache ich falsch und da ist der Hinweis auf die nicht deklarierte Variabe x die einzig richtige Antwort. Das es besser geht, keine Frage, aber es muß doch eigentlich auf den Fehler hingewiesen werden...
Sorry, wenns ein bißchen blöd und altklug klingt, das ist nicht meine Absicht, aber es ist noch sehr früh und ich bin in Zeitdruck...
So ist die Function richtig..

Delphi-Quellcode:
function GVersion(s: String): String;
Var x : String; // x deklarieren
begin
  x:=s; // x initialisieren
  while Pos('.', x) > 0 do
    x[Pos('.', s)] := ' ';
  while Pos(' ', x) > 0 do
    Delete(x, Pos(' ', x), 1);
    result := x;
end;
An der Formatierung ist eigentlich nicht wirklich was auszusetzen, allerdings ist der Umweg über das Leerzeichen nicht notwendig.
Gruß oldmax
Noch ist mein Rechner mir zu Diensten.... ansonsten habe ich die Macht ihn zu vernichten !
  Mit Zitat antworten Zitat
Benutzerbild von RavenIV
RavenIV

Registriert seit: 12. Jan 2005
Ort: Waldshut-Tiengen
2.875 Beiträge
 
Delphi 2007 Enterprise
 
#7

Re: Functions-Problem

  Alt 18. Apr 2008, 08:46
Warum soll den ums Verrecken ein unperformanter Code verbessert werden, wenn es eine fertige Delphi-Funktion dafür gibt?
Klaus E.
Linux - das längste Text-Adventure aller Zeiten...
Wer nie Linux mit dem vi konfiguriert hat, der hat am Leben vorbei geklickt.
  Mit Zitat antworten Zitat
oldmax

Registriert seit: 27. Apr 2006
Ort: Gieboldehausen
167 Beiträge
 
#8

Re: Functions-Problem

  Alt 18. Apr 2008, 09:08
Hi
Zitat:
Ich habe zwar schon eine Lösung gefunden, aber mich würde mal interessieren, warum das so ist?
deswegen.....
Gruß oldmax
Noch ist mein Rechner mir zu Diensten.... ansonsten habe ich die Macht ihn zu vernichten !
  Mit Zitat antworten Zitat
Tommy1988
(Gast)

n/a Beiträge
 
#9

Re: Functions-Problem

  Alt 21. Apr 2008, 13:00
Zitat:
zuerst einmal verwendest Du eine Variable namens x, die nirgendwo deklariert ist
Das muss ich entschuldigen, ich hatte s durch x getauscht, aber es hat es schon vorher nicht getahn, als x noch s war

Aber ich werde mir mal eure Funktionen ansehen und draus lernen.

Vom StringReplace möchte ich eigentlich weg bleiben.

Ich probiers mal aus
  Mit Zitat antworten Zitat
Antwort Antwort


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 09:03 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