AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren

Val und zuweisung

Ein Thema von EWeiss · begonnen am 8. Mai 2017 · letzter Beitrag vom 12. Mai 2017
Antwort Antwort
EWeiss
(Gast)

n/a Beiträge
 
#1

Val und zuweisung

  Alt 8. Mai 2017, 22:03
Ich habe einen string den ich mit VAL konvertieren muss.
Delphi-Quellcode:
var
 sEnable: string
begin
  sEnable := '"2"""';
  VAL(... ??
end;
Den möchte ich jetzt so auslegen das als Ergebnis die 2 herauskommt..
Wie geht's?

Komme mit der Funktion nicht so richtig klar.

EDIT:
Habe es selbst herausgefunden

Delphi-Quellcode:
var
 sEnable: string
 int: Integer;
 ErrorPos: Integer;
begin
  sEnable := '"2"""';
  VAL(sEnable, Int, Errorpos);
  if errorPos = 0 then
    if sEnable = '2then // RecycleBin
    begin
      EnableFlag := StrToInt(sEnable);
    end;
end;
Nach Val ist sEnable = "2"

gruss

Geändert von EWeiss ( 8. Mai 2017 um 22:18 Uhr)
  Mit Zitat antworten Zitat
gammatester

Registriert seit: 6. Dez 2005
999 Beiträge
 
#2

AW: Val und zuweisung

  Alt 8. Mai 2017, 22:12
Ich habe einen string den ich mit VAL konvertieren muss.
Delphi-Quellcode:
var
 sEnable: string
begin
  sEnable := '"2"""';
  VAL(... ??
end;
Schau mal in die Hilfe: S is a string-type expression; it must be a sequence of characters that form a signed real number.
Ich sehe nicht, wie "2""" eine Zahl sein soll.
  Mit Zitat antworten Zitat
EWeiss
(Gast)

n/a Beiträge
 
#3

AW: Val und zuweisung

  Alt 8. Mai 2017, 22:13
Ich habe einen string den ich mit VAL konvertieren muss.
Delphi-Quellcode:
var
 sEnable: string
begin
  sEnable := '"2"""';
  VAL(... ??
end;
Schau mal in die Hilfe: S is a string-type expression; it must be a sequence of characters that form a signed real number.
Ich sehe nicht, wie "2""" eine Zahl sein soll.
Siehe mein Edit..

gruss
  Mit Zitat antworten Zitat
hoika

Registriert seit: 5. Jul 2006
Ort: Magdeburg
8.277 Beiträge
 
Delphi 10.4 Sydney
 
#4

AW: Val und zuweisung

  Alt 9. Mai 2017, 06:49
Hallo,
wenn das Format bekannt ist, geht es auch anders

sEnable='"2"""'
StringReplace(sEnable,'"','',[rfReplaceAll]
sEnable='2'

TryStrToInt
int=2
Heiko
  Mit Zitat antworten Zitat
EWeiss
(Gast)

n/a Beiträge
 
#5

AW: Val und zuweisung

  Alt 9. Mai 2017, 07:03
Hallo,
wenn das Format bekannt ist, geht es auch anders

sEnable='"2"""'
StringReplace(sEnable,'"','',[rfReplaceAll]
sEnable='2'

TryStrToInt
int=2
Ja Danke aber das ist nicht bekannt..
Keine Ahnung was der User da in die Textdatei hinein schreibt.
Wenn es falsch ist dann kracht's.

gruss
  Mit Zitat antworten Zitat
Frickler

Registriert seit: 6. Mär 2007
Ort: Osnabrück
622 Beiträge
 
Delphi XE6 Enterprise
 
#6

AW: Val und zuweisung

  Alt 9. Mai 2017, 07:53
Keine Ahnung was der User da in die Textdatei hinein schreibt.
Wenn es falsch ist dann kracht's.
gruss
Ich nutze für sowas folgende Funktion:

Delphi-Quellcode:
{ Konvertiert den String in eine Zahl, überliest dabei andere Buchstaben.
  So liefert SloppyStrToIntDef('Länge: 15 cm', 0) als Ergebnis die Zahl 15.
  Unterbrochene Ziffernfolgen werden allerdings nicht zusammengefügt, so dass
  SloppyStrToIntDef('1 2 3 4 5', 0) die Zahl 1 liefert und nicht etwa 12345.
}

function SloppyStrToIntDef(const s: string; default: integer): integer;
var
  i: integer;
  tmp: string;
  flag: (vorZahl, inZahl, nachZahl);
begin
  tmp := ''; flag := vorZahl;
  for i:=1 to Length(s) do begin
    if CharInSet(s[i], ['0'..'9']) then begin
      if flag = vorZahl then begin
        flag := inZahl;
        tmp := tmp + s[i];
      end
      else if flag = inZahl then
        tmp := tmp + s[i]
      else
        break;
    end
    else begin
      if flag = inZahl then
        flag := nachZahl
    end
  end;
  result := StrToIntDef(tmp, default);
end;
  Mit Zitat antworten Zitat
Amateurprofi

Registriert seit: 17. Nov 2005
Ort: Hamburg
1.087 Beiträge
 
Delphi XE2 Professional
 
#7

AW: Val und zuweisung

  Alt 9. Mai 2017, 07:49
Ich habe einen string den ich mit VAL konvertieren muss.
Delphi-Quellcode:
var
 sEnable: string
begin
  sEnable := '"2"""';
  VAL(... ??
end;
Den möchte ich jetzt so auslegen das als Ergebnis die 2 herauskommt..
Wie geht's?

Komme mit der Funktion nicht so richtig klar.

EDIT:
Habe es selbst herausgefunden

Delphi-Quellcode:
var
 sEnable: string
 int: Integer;
 ErrorPos: Integer;
begin
  sEnable := '"2"""';
  VAL(sEnable, Int, Errorpos);
  if errorPos = 0 then
    if sEnable = '2then // RecycleBin
    begin
      EnableFlag := StrToInt(sEnable);
    end;
end;
Nach Val ist sEnable = "2"

gruss

@EWeiss:

Ich glaube nicht, dass bei dem von dir gezeigten Beispiel sEnable nach dem VAL '2' ist, weil VAL den übergebenen String nicht verändert (S ist kein var Parameter).
Und auspropieren zeigte, zumindest bei mir, dass sEnable nach dem VAL tatsächlich unverändert ist.
Gruß, Klaus
Die Titanic wurde von Profis gebaut,
die Arche Noah von einem Amateur.
... Und dieser Beitrag vom Amateurprofi....
  Mit Zitat antworten Zitat
Antwort Antwort

Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Ansicht

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 22:19 Uhr.
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz