PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Zeichen aus Text filtern


Nokman
16.04.2014, 00:34
Guten Abend/morgen,

Ich habe in einer Externen Datei folgende Zeile stehen und lasse die mir inlesen in eine _text .
[123,bla bla,[123,123,123,123,blabla]]

Meine suche geht nun dahin wie kann ich die Einzelnen "," Auseinaderkliedern
_a = [123
_b = bla bla
_c = [123
_d = 123
_e = 123.12
_f = 123
_g = blabla]]

und ich es noch zusätzlich hinbekomme die "][" nicht mit einzuspeichern?
Ich müsste das ganze doch mit
_text select 1
_text select 2
_text select 3
...

bewerkstelligen doch da es mit ein [ anfängt und dazwischen auch welche sind kommt er wohl durcheinander

marc_book
16.04.2014, 07:35
Versuchs mal mit find (https://community.bistudio.com/wiki/find). Bin mir aber nicht sicher ob es das ist was du suchst.

Vienna
16.04.2014, 09:04
Dein Array enthält keinen Text sondern Zahlen und eine Variable Namens blabla. Text muss in Anführungszeichen stehen.

Wenn du meinst du hast diesen String:

_text = "[123,bla bla,[123,123,123,123,blabla]]";

sind mir in Arma keine Befehle bekannt, mit denen man diesen String zerlegen kann.

Umwandeln von Zahlen auf String geht mit str oder format. Auch das Zusammenfügen von Text ist möglich.

https://community.bistudio.com/wiki/String

Lester
16.04.2014, 11:08
Wenn du meinst du hast diesen String:

_text = "[123,bla bla,[123,123,123,123,blabla]]";

sind mir in Arma keine Befehle bekannt, mit denen man diesen String zerlegen kann.

Es geht, ist aber recht mühsam via toarray, dann weiterverarbeitenund schließlich die Teile via tostring wieder zusammenfügt.


Im z.B. CBA Addon sind sogar einige komplexere String Routinen zu finden die auf derartige Methoden basieren. ;)

Vienna
16.04.2014, 13:44
toarray und tostring verarbeiten den Code der einzelnen Textzeichen, diese Befehle kannte ich noch gar nicht. Damit könnte man eine Funktionen erstellen welche das Ausschneiden von Texteilen ermöglicht.

Wäre gar nicht so schwer zu erstellen, falls Nokman das wirklich so benötigt.

Lester
16.04.2014, 15:07
Damit könnte man eine Funktionen erstellen welche das Ausschneiden von Texteilen ermöglicht.

Wäre gar nicht so schwer zu erstellen, falls Nokman das wirklich so benötigt.Die Funktionen gibt es teilweise schon, sogar in A3 default, einfach im Funktionsbrowser rumkramen !;)

z.B.:/*
Author: Jiri Wainar

Description:
Get a substring out of the string.

Parameter(s):
1: STRING - source string

2: NUMBER (optional, default 0) - start index;
* indexing starts at 0

3: NUMBER (optional, default end of string) - end index
* negative number means -X chars from the string end

Returns:
STRING
*//*
Author: Karel Moricky

Description:
Split spring according to given separators

Parameter(s):
1: STRING - affected string
2: STRING - one or more separators

Returns:
ARRAY of STRINGs
*//*
File: inString.sqf
Author: Mika Hannola

Description:
Find a string within a string.

Parameter(s):
_this select 0: <string> string to be found
_this select 1: <string> string to search from
_this select 2 (Optional): <boolean> search is case sensitive (default: false)

Returns:
Boolean (true when string is found).

How to use:
_found = ["string", "String", true] call BIS_fnc_inString;
*/

Nokman
16.04.2014, 17:56
_text = [[123,"bla bla",[123,456,789,000,"blabla"],767]];

es ging sogar einfach auseinander zumnehmen mit Select es dauerte blos bis ich das richtige abgegriffen hatte
(_text select 0) select 0
für 123
(_text select 0) select 1
für bla bla
(_text select 0) select 2 select 0
für 123
(_text select 0) select 2 select 1
456
(_text select 0) select 2 select 2
789
(_text select 0) select 2 select 3
000
(_text select 0) select 2 select 4
blabla
(_text select 0) select 3
767

Aber ich hate nicht erwartet das man in Arma wirklich eien Textverarbeitung hinbekommen könnte aber so wie es aussieht kann man auch Excel ablösen ^^

Viel dank

Vienna
16.04.2014, 20:03
Kann ich nicht glauben, dass das so gehen soll...

Edit: nach deiner Änderung sollte es jetzt klappen.

Nokman
16.04.2014, 23:30
Ich hate es mir noch mal angeschaut nach deinem Post "es kann nicht gehen". Und es stimmt ich hatte was vergessen.

Da ich die Eingabe datei Verändern kann habe ich es mir viel zu Kompliziert gemacht und habe die Variable umgeändert damit sie Auslesbar ist mit Select. das hatte ich im Vorhergehenden Post schlicht übersehen/vergessen.

_text = [[123,"bla bla",[123,456,789,000,"blabla"],767]];
womit ich es in Einzelnen Zerlegen kann.

Danke für denn Hinweis!