Beim Import Zeichenkette zuschneiden

14. Dezember 2005 12:52

Hallo,

ich habe beim Import mit Hilfe eines Dataports folgendes Problem:

Es soll eine Datei importiert werden, in der Reifengroessen stehen. Dabei sind die Groessen nicht immer gleich aufgebaut. Beispiel:

315/80
205
8
10.00-

Ich möchte nun in eine weitere Spalte mit den Werten aus Spalte 1 füllen, jedoch ohne die Querstriche. Demach soll der Wert 315/80 in 31580 geändert werden.
Sicherlich könnte ich das mit einem einfachen Abschneiden und wieder zusammenfügen lösen, aber das hilft mir nur bei den Werten, die einem bestimmten Vorgabewert entsprechen. Der Wert "10-" würde da z.B. wieder rausfallen.

Gibt es eine Möglichkeit, mit deren Hilfe ich die Striche " / " " - " aus einer Zeichenkette entfernen kann?


Ich hoffe, das alles verständlich ist.

Guenther

14. Dezember 2005 13:31

sorry muss ich nochmal nachschauen, ich habe mich verlesen :oops:
Gruß Mikka

14. Dezember 2005 13:35

Hallo,

diese Variante werde ich auch mal ausprobieren. Habe vorerst in der Hilfe folgende Variante gefunden:

String := Groesse.Reifengroesse;
Where := '=';
Which := '-/ ';
Suche := DELCHR(String, Where, Which);

Damti scheint das auch zu funktionieren. Möglicherweise falle ich damit aber bei einigen DS auf die Nase.

Vielen Dank für deinen Vorschlag.

Gruß, Guenther

14. Dezember 2005 13:39

Hallo,
ich bin mir nicht ganz sicher was du machen möchtest.
Folgender Code würde wie du eigentlich nicht möchtest die Variable "zusammenbasten".
(Mein erster Gedanke!)

text := '318-15';
MESSAGE(text);
text1 := COPYSTR(text,1,strpos(text,'-')-1) + COPYSTR(text,strpos(text,'-')+1);
MESSAGE(text1);

Die Variable "Text" und die Messages habe ich nur zu Evaluierung eingebaut :!:
Den "Text1" tauschst du gegen den Datensatz. In deinen Dataport müsstest du die "DataPort Fields" im Field Designer gegen deine Variable Tauschen.
Dann sollte es Funktionieren.
****************************
Bis hier war mein erster Gedanke. So, jetzt möchtest du aber auch andere Zeichen die nicht vorher definiert wurden herausschneiden:?:
Ich wüste höchstens die gültigkeits Prüfung auf Zahlen! (Hilft dir das?)
Gruß [schild=4 fontcolor=000000 shadowcolor=C0C0C0 shieldshadow=1]Mikka[/schild]

14. Dezember 2005 13:44

Hi Guenther,
da warst du schneller 8-)
Tja es kann so einfach sein ....DELCHR....
MFG

14. Dezember 2005 18:36

Na das kann ja mal passieren :-P

War ein Glückstreffer von mir ...

Gruß

14. Dezember 2005 22:20

Sollen jedoch alle nicht numerischen Werte aus dem Text zu entfernt werden, wäre folgender Code am effektivsten:
Code:
NeueReifenGrösse := DELCHR(ReifenGrösse,'=',DELCHR(ReifenGrösse,'=','0123456789'));

15. Dezember 2005 15:38

Stimmt. So langsam wachs ich in die Programmierung von Attain rein.
Der Code klappt prima.

Jetzt steck ich noch vor nem weiteren Problem:

Ich habe also die Reifengroessen:

315/80
10.00
9

Nun möchte ich die Groesse aufspalten in die einzelnen Werte, wobei nicht jeder Wert die gleiche Länge hat, ansonsten könnte ich ja einfach alles entsprechend mit einem Befelh abschneiden.
Da ich aber einmal nur die 315, das andere mal aber exakt 10.00 oder 9 haben muß, funktioniert das nicht so wie ich will. Kann ich das irgendwie mit geschachtelten IF-Abfragen lösen? Ich stecke nämlich gerade da fest.

15. Dezember 2005 16:40

Hallo Guenther,
könnest du genauer Beschreiben was das Ergebnis sein soll? (Beispiel)
Ich Verstehe die Frage nicht so ganz! :roll:
Sollen alle Felder die gleiche Länge haben?
Gruß Mikka

20. Dezember 2005 09:05

Hallo mikka,

brauchst dir keine Gedanken mehr zu machen, ich habe mich von diesem irrsinnigen Gedanken, den ich dort noch hatte, verabschiedet. Ich löse
das Problem jetzt mit dem Suchbegriff aus Attain. Mit dem kann ich die Daten einfach abfragen bzw zuordnen.

Vielen Dank trotzdem für deine und eure Bemühungen.

Gruß,
Guenther