String teilen und in Variablen schreiben
Moderator: Moderatoren
String teilen und in Variablen schreiben
Hallo,
aus einer Zelle die aus zwei Strings besteht benötige ich beide Teile einzeln:
sub Main
BigString = "Kunde Fa / 85432 Ort"
Inhalt=ArrayOutOfString(BigString," / ")
For i = LBound(Inhalt()) to UBound(Inhalt())
Print Inhalt(i)
' Part&Chr(i)=Inhalt(i)
Next
end Sub
Das funktioniert aber ich scheitere daran die beiden Teile in Variablen zu schreiben.
Als Anfänger wäre ich für einen Tip dankbar.
aus einer Zelle die aus zwei Strings besteht benötige ich beide Teile einzeln:
sub Main
BigString = "Kunde Fa / 85432 Ort"
Inhalt=ArrayOutOfString(BigString," / ")
For i = LBound(Inhalt()) to UBound(Inhalt())
Print Inhalt(i)
' Part&Chr(i)=Inhalt(i)
Next
end Sub
Das funktioniert aber ich scheitere daran die beiden Teile in Variablen zu schreiben.
Als Anfänger wäre ich für einen Tip dankbar.
Re: String teilen und in Variablen schreiben
Hallo
Vor 11 Tagen schriebst du
Bei wieviel % bist du jetzt?
Vor 11 Tagen schriebst du
…Die Aufbereitung der KdArtStat ist zu 98,5% fertig …
Bei wieviel % bist du jetzt?
Code: Alles auswählen
bigstring = "Kunde Fa / 85432 Ort"
a, b = map(str.strip, bigstring.split("/"))
print( f"{a=}\n{b=}" )
LO7.4.7.2 debian 12(bookworm) auf Raspberry4b 8GB (64bit)
LO7.6.2.1 flatpak debian 12(bookworm) auf Raspberry4b 8GB (64bit)
LO7.6.2.1 flatpak debian 12(bookworm) auf Raspberry4b 8GB (64bit)
Re: String teilen und in Variablen schreiben
Danke für den Code. Ich habe viel gelernt aber so weit bin ich noch nicht. Versteh nur Bhf und wenn ich versuche das abgeschriebene auszuführen kommt "unerwartetes Symol". Dachte a, b seien die Variablen??? Erklär bitte was du da machst und wie ich damit weitermachen kann.
Zu deiner Frage %?
Die KdArtStat war letzte Woche fertig und funktioniert. Da ca. 35000 Formeln via Schleifen eingebaut werden lohnt der Weg zur Kaffemaschine... Um das mit Arrays zu beschleunigen könnte ich beim nächsten Update ggf. angehen. Das Löschen der Doppeleinträge führt dazu dass "goDownToEndOfData" in den Leerzeilen hängenbleibt, egal ob mit (255) oder (31) gelöscht. Hier bleibts wohl bei der Schleife um die Nullen zu überspringen...
Zwischenzeitlich ist die Adressliste per Makro aufbereitet, ging ohne Hilfe.
Im Nachgang will ich noch in der KdArtStat die Funktion einbauen dass hinzugekommene Kunden rudimentär mit KdNr, Name, Ort in die Adressliste geschrieben werden. Dafür brauchts den Split.
Jetzt mach ich noch die Interaktion zwischen den Tables und wenn ich mal Zeit habe will ich mal schauen was für Möglichkeiten für eine nette GUI bestehen.
Tab0: Adressliste (read only) mit Schaltflächen zum Sortieren und Knopf um über die KdNr zu Tab1 zu springen.
Tab1: Datensatz Kunde mit Eingabemöglichkeit für Änderungen, Ergänzungen sowie Schaltfläche zum Drucken und Speichern.
Tab2: KdArtStat aktuell mit Art/Umsatz über KdNr selektiert (max. 1 mal pro Monat Update)
Tab3: KdArtStatPrev Hier kommt beim Update die bestehende Tabelle hin zum Prüfen ob nichts fehlt.
Tab4: evtl. Irgendeine Auswahl zum Drucken.
Zu deiner Frage %?
Die KdArtStat war letzte Woche fertig und funktioniert. Da ca. 35000 Formeln via Schleifen eingebaut werden lohnt der Weg zur Kaffemaschine... Um das mit Arrays zu beschleunigen könnte ich beim nächsten Update ggf. angehen. Das Löschen der Doppeleinträge führt dazu dass "goDownToEndOfData" in den Leerzeilen hängenbleibt, egal ob mit (255) oder (31) gelöscht. Hier bleibts wohl bei der Schleife um die Nullen zu überspringen...
Zwischenzeitlich ist die Adressliste per Makro aufbereitet, ging ohne Hilfe.
Im Nachgang will ich noch in der KdArtStat die Funktion einbauen dass hinzugekommene Kunden rudimentär mit KdNr, Name, Ort in die Adressliste geschrieben werden. Dafür brauchts den Split.
Jetzt mach ich noch die Interaktion zwischen den Tables und wenn ich mal Zeit habe will ich mal schauen was für Möglichkeiten für eine nette GUI bestehen.
Tab0: Adressliste (read only) mit Schaltflächen zum Sortieren und Knopf um über die KdNr zu Tab1 zu springen.
Tab1: Datensatz Kunde mit Eingabemöglichkeit für Änderungen, Ergänzungen sowie Schaltfläche zum Drucken und Speichern.
Tab2: KdArtStat aktuell mit Art/Umsatz über KdNr selektiert (max. 1 mal pro Monat Update)
Tab3: KdArtStatPrev Hier kommt beim Update die bestehende Tabelle hin zum Prüfen ob nichts fehlt.
Tab4: evtl. Irgendeine Auswahl zum Drucken.
Re: String teilen und in Variablen schreiben
Hallo,
Karolus' Code ist in Python geschrieben.
In Starbasic z. B.
Es wäre aber auch durchaus sinnvoll, es beim Array zu lassen - je nachdem, was man danach noch damit machen will ...
Karolus' Code ist in Python geschrieben.
In Starbasic z. B.
Code: Alles auswählen
sub Main
BigString = "Kunde Fa / 85432 Ort"
Inhalt=split(BigString," / ")
a = trim(Inhalt(0))
b= trim(Inhalt(1))
end Sub
Gruß,
mikeleb
mikeleb
Re: String teilen und in Variablen schreiben
Hallo,
Der Split ist das geringste Problem.
Das deutet darauf hin, dass das Gesamtprojekt genauer betrachtet werden sollte.Da ca. 35000 Formeln via Schleifen eingebaut werden lohnt der Weg zur Kaffemaschine... Um das mit Arrays zu beschleunigen könnte ich beim nächsten Update ggf. angehen.
Der Split ist das geringste Problem.
Das wird einfacher gehen. Dazu wäre eine Beispieldatei mit deinen aktuellen Makros hilfreich, um zu verstehen, was du vorhast.Das Löschen der Doppeleinträge führt dazu dass "goDownToEndOfData" in den Leerzeilen hängenbleibt, egal ob mit (255) oder (31) gelöscht. Hier bleibts wohl bei der Schleife um die Nullen zu überspringen...
Gruß,
mikeleb
mikeleb
Re: String teilen und in Variablen schreiben
Danke, dein Code ist schön schlank und geht gut. Das mit den Arrays hatte ich zwischenzeitlich auch hingekriegt, bringt aber für die weitere Verwendung eher nix. Dein Hilfsangebot mir beim Gesamtkonstukt zu helfen nehme ich gerne an. Allerdings erst wenn die erste Excel Update Datei kommt. Jetzt muss ich die V1 an den Start bringen, bin 5 Wochen in Verzug
Mein aktuelles Problem: Ich bin im Makro in Table2 auf der KdNr. Jetzt soll in Table0 die Col0 nach dieser KdNr durchsucht werden und wenn vorhanden daneben in Col1 ein A eingetragen werden. Wenn nicht vorhanden unten am Ende die neue KdNr und daneben A, "", SplitA, SplitB in die Zellen geschrieben werden. Mit dem Suchen/Ersetzen wie bei Dannenhöfer gehts nicht und mit Uno klappt gar nichts. Mir fällt da nur ein mit einer Schleife durch die Spalte zu eiern. Du hast vermutlich eine bessere Idee?
Mein aktuelles Problem: Ich bin im Makro in Table2 auf der KdNr. Jetzt soll in Table0 die Col0 nach dieser KdNr durchsucht werden und wenn vorhanden daneben in Col1 ein A eingetragen werden. Wenn nicht vorhanden unten am Ende die neue KdNr und daneben A, "", SplitA, SplitB in die Zellen geschrieben werden. Mit dem Suchen/Ersetzen wie bei Dannenhöfer gehts nicht und mit Uno klappt gar nichts. Mir fällt da nur ein mit einer Schleife durch die Spalte zu eiern. Du hast vermutlich eine bessere Idee?
Re: String teilen und in Variablen schreiben
Hallo
Und ich hab eben keine Lust mich Zeile für Zeile durch 500 zeilen unaufgeräumten, aufgezeichneten Spaghetticode zu wühlen nur um den »Zielvorstellungen« von @nobijohn zu genügen ( »ZielVorstellung« ⇒ kaputte Eingangsdaten in eine ebenso kaputte Zielstruktur überführen )
Das hatten wir doch schon, aber @nobijohn kann besonders gut ignorieren! https://de.openoffice.info/viewtopic.ph ... 33#p302033 und folgende zwei Beiträgemikele hat geschrieben:Das wird einfacher gehen. Dazu wäre eine Beispieldatei mit deinen aktuellen Makros hilfreich, um zu verstehen, was du vorhast.
Und ich hab eben keine Lust mich Zeile für Zeile durch 500 zeilen unaufgeräumten, aufgezeichneten Spaghetticode zu wühlen nur um den »Zielvorstellungen« von @nobijohn zu genügen ( »ZielVorstellung« ⇒ kaputte Eingangsdaten in eine ebenso kaputte Zielstruktur überführen )
LO7.4.7.2 debian 12(bookworm) auf Raspberry4b 8GB (64bit)
LO7.6.2.1 flatpak debian 12(bookworm) auf Raspberry4b 8GB (64bit)
LO7.6.2.1 flatpak debian 12(bookworm) auf Raspberry4b 8GB (64bit)
Re: String teilen und in Variablen schreiben
Hallo,
aus meiner Sicht wäre es zumindest sinnvoll, an der Struktur der Daten/Tabellenblätter zu arbeiten. Ganz wichtig wäre dabei, die Daten von der Auswertung zu trennen, also
- ein Tabellenblatt für den Import der Kunden-Artikel-Statistik aus der xlsx-Datei (Ist die wirklich so aufgebaut oder entstammen die Unmengen Leerzeichen der Anonymisierung?)
- ein Tabellenblatt für die (über Jahre) gesammelten Daten
- ein Tabellenblatt für die Auswertung/Aufbereitung der Daten (am einfachsten per Pivottabelle, ansonsten eine Formel-/Makrolösung)
(Das Ganze kommt natürlich irgendwann an Grenzen, an denen man dann zu einer Datenbanklösung übergehen würde.)
und schon sind "nur" noch drei Schritte zu gehen:
1) Import der xlsx-Daten
2) Anhängen der Datensätze an die gesammelten Daten (dazu wären einfach nur die Zellen von die Leerzeichen zu bereinigen)
3) Aktualiserung der Auswertung (selbst bei einer Formellösung müssen dann nicht Unmengen an Formeln neu eingetragen werden)
aus meiner Sicht wäre es zumindest sinnvoll, an der Struktur der Daten/Tabellenblätter zu arbeiten. Ganz wichtig wäre dabei, die Daten von der Auswertung zu trennen, also
- ein Tabellenblatt für den Import der Kunden-Artikel-Statistik aus der xlsx-Datei (Ist die wirklich so aufgebaut oder entstammen die Unmengen Leerzeichen der Anonymisierung?)
- ein Tabellenblatt für die (über Jahre) gesammelten Daten
- ein Tabellenblatt für die Auswertung/Aufbereitung der Daten (am einfachsten per Pivottabelle, ansonsten eine Formel-/Makrolösung)
(Das Ganze kommt natürlich irgendwann an Grenzen, an denen man dann zu einer Datenbanklösung übergehen würde.)
und schon sind "nur" noch drei Schritte zu gehen:
1) Import der xlsx-Daten
2) Anhängen der Datensätze an die gesammelten Daten (dazu wären einfach nur die Zellen von die Leerzeichen zu bereinigen)
3) Aktualiserung der Auswertung (selbst bei einer Formellösung müssen dann nicht Unmengen an Formeln neu eingetragen werden)
Gruß,
mikeleb
mikeleb
Re: String teilen und in Variablen schreiben
@mikeleb: Danke für deine konstruktiven Gedanken. Im Prinzip bin ich dabei genau das umzusetzen. 1) klar 2)Anhängen wird so einfach nicht gehen da die hinzugekommenen Daten zwischendrin verteilt sind. Die Leerzeichen müssen aus dem xlsx stammen. Würde auch erklären warum Ctrl + down nicht funktioniert. 3) Updates werden max. 1 mal pro Monat gemacht...
Ich werde einen Dummy vom Gesamten anfertigen und mit den Makros (entsprechend kommentiert) hochladen. Muss mich aber heute um die Druckerprobleme meiner Lady kümmern...
@Karolus: Mir Ignoranz vorzuwerfen halte ich nicht für angemessen. Das Makro ist längst nicht mehr so unaufgeräumt und auch von sinnfreien Präfixes (die du früher auch gern benutzt hast) befreit. Zusammengeklickter Kram fehlt auch. Bin trotz Alter noch lernfähig. Dass du dich nicht durch einen Haufen Spaghetti wühlen möchtest kann ich gut nachvollziehen, erwarte ich auch nicht. Und die Zielstuktur ist auch noch nicht kaputt.
Ich werde einen Dummy vom Gesamten anfertigen und mit den Makros (entsprechend kommentiert) hochladen. Muss mich aber heute um die Druckerprobleme meiner Lady kümmern...
@Karolus: Mir Ignoranz vorzuwerfen halte ich nicht für angemessen. Das Makro ist längst nicht mehr so unaufgeräumt und auch von sinnfreien Präfixes (die du früher auch gern benutzt hast) befreit. Zusammengeklickter Kram fehlt auch. Bin trotz Alter noch lernfähig. Dass du dich nicht durch einen Haufen Spaghetti wühlen möchtest kann ich gut nachvollziehen, erwarte ich auch nicht. Und die Zielstuktur ist auch noch nicht kaputt.