String Operation: Strings vergleichen - Größe extrahieren

12. Oktober 2011 14:17

Hallo zusammen,

suche nach einer Möglichkeit aus Strings die Größe des Bekleidungsstückes / Schuhes zu extrahieren. Artikel sind nicht als Varianten angelegt, sondern jede Größe mittels neuer Artikelnummer für sich.

ELTEN Adviser ESD Gr. 40 S2 Halbschuh
ELTEN Adviser ESD Gr. 41 S2 Halbschuh

muss jetzt aus solchen Strings wie oben aufgeführt die Größe Gr. XX extrahieren. Die Größen stehen leider nicht immer an derselben Positionsstelle und die Größenkriterien können 1-3-stellig sein (S, M, L, ... 38, 39, 40 ... 102, 106, 110) sein.

Hat jemand eine Idee wie so etwas mit den String-Funktionen von NAV zu bewerkstelligen wäre?



Danke.

Re: String Operation: Strings vergleichen - Größe extrahiere

12. Oktober 2011 14:22

Steht das "Gr." mit drinnen?
Wenn ja kannst du das über STRPOS finden und alles was danach kommt abfragen.

Re: String Operation: Strings vergleichen - Größe extrahiere

12. Oktober 2011 14:28

ja Gr. steht mitten drin. Aber danach kommt auch noch Text der nicht unbedingt zur Größenformatierung gehört, Daher kann ich leider nicht einfach nur mit STRPOS nach Gr. suchen und hiernach alles abschneiden.

Re: String Operation: Strings vergleichen - Größe extrahiere

12. Oktober 2011 14:31

D.h. ihr packt zwischen das "Gr." und die Größenangabe unter Umständen auch nochmal informationen?

Das klingt für mich nach einer volklommen untrukturierten und chaotischen Artikelnummernvergabe.

Gibt es nicht einmal ein Muster?
Kannst du vielleicht die Logik der Nummernvergabe kurz skizzieren?

Re: String Operation: Strings vergleichen - Größe extrahiere

12. Oktober 2011 14:35

nein zwischen Gr. und der Größenangabe folgt kein Text mehr. Aber nach der Größenangabe.

Bsp: ELTEN Adviser ESD Gr. 41 S2 Halbschuh

der rot markierte Text müsste quasi raus aus der Item.Description.

Re: String Operation: Strings vergleichen - Größe extrahiere

12. Oktober 2011 14:39

Hallo,

ich kann dir da als Stichpunkt nur eine Kombination aus STRPOS, DELCHR und COPYSTR empfehlen (siehe C/AL-Hilfe). Aber eine allgemeingültige Lösung, die auch mit Daten von unterschiedlichen Lieferanten funktioniert dürfte sehr schwer werden :-(

Gruß,Fiddi

Re: String Operation: Strings vergleichen - Größe extrahiere

12. Oktober 2011 15:07

Würde ein strpos auf Gr. und nen Strcopy mit 6 zeichen ("Gr. XX") nicht reichen? Alternativ, falls ohne Gr. benötigt wird, das strcopy um 3 offsetten und nur 2 Zeichen kopieren.
Falls Du es Lieferantenabhängig brauchst, dann brauchst Du eine Einrichtungstabelle wo du pro Lieferant "Größenbeschreibung" (Gr.), Anzahl Zeichen nach Größenbeschreibung bis Größe (hier 1) und Anzahl Zeichen Größe (hier 2).

Re: String Operation: Strings vergleichen - Größe extrahiere

12. Oktober 2011 15:18

Mit den drei Befehlen von fiddi hats du alles zur Hand was du benötigst.
Selbst wenn du nicht an anderenKennzeichen siehst in welchem Format die Größe vorliegt, kannst du immer noch mit einem CASE die nächsten Zeichen prüfen.
Wobei es schöner wäre in diesem Fall eine Tabelle mit gültigen Größenangaben anzulegen.
Da kannst du dann erst die MAX Zeichen nach dem Gr. verwenden und dich immer kürzer werdend runterarbeiten.

Mal als Codebeispiel (ist glaub schneller zu verstehen):
Code:
Size := COPYSTR(Item."No.",STRPOS(Item."No.",'Gr.')+3); // Alle Zeichen nach dem Gr.
!!ODER !! Size := COPYSTR(Item."No.",STRPOS(Item."No.",'Gr.')+3,4); // Falls klar ist das Größenangaben niemals länger als 4 Zeichen sind.
IF NOT SizeTable.GET(Size) THEN
  REPEAT
    Size := COPYSTR(Size,1,STRLEN(Size)-1); // Letztes Zeichen abschneiden
  UNTIL SizeTable.GET(Size) OR (STRLEN(Size) <= 1);
Zuletzt geändert von Danjo am 12. Oktober 2011 15:44, insgesamt 1-mal geändert.

Re: String Operation: Strings vergleichen - Größe extrahiere

12. Oktober 2011 15:37

Ist das nicht mit Kanonen auf Spatzen schießen? ;)

Entweder kommt nach dem "Gr. " ein Buchstabe oder eine Zahl, danach ein Space, wenn ich das richtig deute. Klingt doch nicht allzu kompliziert.

Re: String Operation: Strings vergleichen - Größe extrahiere

12. Oktober 2011 15:45

o.O wieso hab ich mich den da selbst zitiert?
Kann man das löschen?

Je nach Anzahl der Möglichkeitne ist das natürlich zu viel.
Du könntest statt einer Tabelle auch einfach ein CASE ausprogrammieren.

Wenn da allerdings wirklich ein Space kommt, ist es ja noch simpler.

Re: String Operation: Strings vergleichen - Größe extrahiere

12. Oktober 2011 15:52

Danjo hat geschrieben:o.O wieso hab ich mich den da selbst zitiert?
Kann man das löschen?

Doppelposting Ist gelöscht.

Re: String Operation: Strings vergleichen - Größe extrahiere

12. Oktober 2011 15:56

Entweder kommt nach dem "Gr. " ein Buchstabe oder eine Zahl, danach ein Space, wenn ich das richtig deute. Klingt doch nicht allzu kompliziert.


Was macht ihr eigentlich, wenn der der Lieferant im Text plötzlich Größe schreibt, oder das aus Platzgründen mischt, oder der nächste Lieferant dafür ein eigenes Feld in der Excel- Tabelle hat :mrgreen:

Gruß, Fiddi

Re: String Operation: Strings vergleichen - Größe extrahiere

12. Oktober 2011 16:03

fiddi hat geschrieben:Was macht ihr eigentlich, wenn der der Lieferant im Text plötzlich Größe schreibt, oder das aus Platzgründen mischt, oder der nächste Lieferant dafür ein eigenes Feld in der Excel- Tabelle hat

Steht denn irgendwo irgendwas davon? Bisher ging es um die Artikelbeschreibung :wink: