1. Dashboard
  2. Forum
    1. Unerledigte Themen
  3. Downloads
  4. Galerie
    1. Alben
  5. Toolbox
    1. Passwort Generator
    2. Portchecker
  6. Mitglieder
    1. Mitgliedersuche
    2. Benutzer online
    3. Trophäen
    4. Team
Do: 22 Mai 2025
  • Anmelden oder registrieren
  • Suche
Dieses Thema
  • Alles
  • Dieses Thema
  • Dieses Forum
  • Artikel
  • Forum
  • Dateien
  • Seiten
  • Bilder
  • Erweiterte Suche

Schön, dass du den Weg zu NodeZone.net gefunden hast! Aktuell bist du nicht angemeldet und kannst deshalb nur eingeschränkt auf unsere Community zugreifen. Um alle Funktionen freizuschalten, spannende Inhalte zu entdecken und dich aktiv einzubringen, registriere dich jetzt kostenlos oder melde dich mit deinem Account an.

Anmelden oder registrieren
    1. Nodezone.net Community
    2. Forum
    3. Gameserver & Hosting
    4. ArmA Series - ArmA 3 / Reforger
    5. Hilfeforum

    Stringcutter

    • moeck
    • 27. September 2017 um 14:58
    • Erledigt
    • moeck
      Erleuchteter
      Reaktionen
      632
      Trophäen
      9
      Beiträge
      3.160
      Bilder
      9
      • 27. September 2017 um 14:58
      • #1

      Moin,

      da ich heute angeschrieben wurde ob es möglich ist von einer UID die letzten 5 Stellen aus zu geben habe ich mich mal rangesetzt und einen kleinen String Cutter gebaut. Ich habe es noch nicht getestet daher übernehme ich auch keine Garantie ;) . Was kann das Script, extrahiert einfach eine beliebige Anzahl von Zeichen aus einem String. Zur Zeit kann man nur festlegen ob man die Zeichen vom Anfang oder vom Ende holen möchte.

      Aufgerufen wird das Script mit folgende Parametern. 1. Gesamtstring, 2. Anzahl der Zeichen die man haben möchte, 3. Startposition (Anfang 0, Ende 1)

      _cutstring = [_inputstring,_anzahl,_start] call life_fnc_stringCutter;

      C: fn_stringCutter.sqf
      /*
          File: fn_stringCutter.sqf
          Author: moeck 
      
          Description:
          Cuts a string from begin or end and gives a string with x chars back
          
      */
      private ["_input","_lenght","_cutlenght","_position","_output","_tmp","_inputarray"];
      params [
          [_input,"",[""]],
          [_cutlenght,0,[0]],
          [_position,0,[0]] //Anfang bzw. Ende
      ];
      _output = "";
      _length = 0;
      _inputarray = [];
      _tmp = [];
      if(_input isEqualTo "") exitWith {}; // no input!
      _inputarray = toArray(_input);
      _length = (count _inputarray)-1;
      if (_length isEqualTo 0) exitWith {}; // no input
      
      if (_length < _cutlenght) exitWith {}; // If you want to have more chars then exists in then total length
      if (_position isEqualTo 0) then {
          for "_i" from 0 to _cutlength do {
              _tmp pushback _inputarray select _i;
          };
          if (count _tmp > 0) exitWith {
              _ouput = toString(_tmp);
              _output;
          };
      };
      if (_position isEqualTo 1) then {
          _start = _length - _cutlength;
          for "_i" from _start to _length do {
              _tmp pushback _inputarray select _i;
          };
          if (count _tmp > 0) exitWith {
              _ouput = toString(_tmp);
              _output;
          };
      };
      Alles anzeigen

      Man kann das Ganze noch weiterausbauen, wenn man möchte z.B. man möchte an einer bestimmten Stelle anfangen und dann x Zeichen rausholen.

      In diesem Sinne noch einen schönen Mittwoch.

      Gruß,

      moeck

      Signatur? Was ist eine Signatur? Kann man das essen?

      Bitte beachten: Ich gebe keinen Support über private Nachrichten!


      Ganz wichtig: [Leitfaden] Wie frage Ich richtig um Hilfe?

      Nicht zu vergessen [Tutorial/Selbst-Test] Sollte ich einen Life Server eröffnen ?

    • blackfisch
      Legende
      Reaktionen
      2.944
      Trophäen
      9
      Beiträge
      5.966
      Dateien
      6
      Bilder
      63
      • 27. September 2017 um 16:01
      • #2

      Man könnte das ganze sicher weitaus simpler stricken mit splitString und joinString ;) Ich schau mir das vlt mal eben an :D

      #MakeArmaNotWar

      Kein Support via PN & Steam! / No Support via DM & Steam!


      Mit freundlichen Grüßen
      blackfisch
      ______________________

      Web: blackfisch.me

      GitHub: GitHub.com/blackfisch

      Mail: [email protected]

      ______________________
      Wichtige Links:
      [Erklärung|Leitfaden] Code Optimierung

      [Tutorial] life_fnc_MP zu remoteExec

      Ohne Logs & entsprechende Dateien kein Support!

      ______________________

    • moeck
      Erleuchteter
      Reaktionen
      632
      Trophäen
      9
      Beiträge
      3.160
      Bilder
      9
      • 27. September 2017 um 16:06
      • #3

      mach das allerdings kannste mit der methode auch Umlaute mit verwursten ^^. Habe leider nix anderes so auf die schnelle gefunden ;)

      Signatur? Was ist eine Signatur? Kann man das essen?

      Bitte beachten: Ich gebe keinen Support über private Nachrichten!


      Ganz wichtig: [Leitfaden] Wie frage Ich richtig um Hilfe?

      Nicht zu vergessen [Tutorial/Selbst-Test] Sollte ich einen Life Server eröffnen ?

    • Lucian
      Amateur
      Reaktionen
      172
      Trophäen
      11
      Beiträge
      204
      Bilder
      5
      • 27. September 2017 um 16:10
      • #4

      Geht auch mit 1 Zeiler Nativ code.

      Anfang:

      "123456789" select [0,5]

      Ende:

      "123456789" select [count "123456789"-5,5]

    • blackfisch
      Legende
      Reaktionen
      2.944
      Trophäen
      9
      Beiträge
      5.966
      Dateien
      6
      Bilder
      63
      • 27. September 2017 um 16:14
      • #5
      Zitat von Lucian

      Geht auch mit 1 Zeiler Nativ code.

      Anfang:

      "123456789" select [0,5]

      Ende:

      "123456789" select [count "123456789"-5,5]

      Das wäre das einfachste... Hatte ich jetzt so auch net im Kopf :D

      #MakeArmaNotWar

      Kein Support via PN & Steam! / No Support via DM & Steam!


      Mit freundlichen Grüßen
      blackfisch
      ______________________

      Web: blackfisch.me

      GitHub: GitHub.com/blackfisch

      Mail: [email protected]

      ______________________
      Wichtige Links:
      [Erklärung|Leitfaden] Code Optimierung

      [Tutorial] life_fnc_MP zu remoteExec

      Ohne Logs & entsprechende Dateien kein Support!

      ______________________

    • Lucian
      Amateur
      Reaktionen
      172
      Trophäen
      11
      Beiträge
      204
      Bilder
      5
      • 27. September 2017 um 16:14
      • #6
      Zitat von blackfisch

      Man könnte das ganze sicher weitaus simpler stricken mit splitString und joinString ;) Ich schau mir das vlt mal eben an :D

      Bei splitString musst du aufpassen, da der Befehl bei non ASCII Chars scheiße macht.

    • moeck
      Erleuchteter
      Reaktionen
      632
      Trophäen
      9
      Beiträge
      3.160
      Bilder
      9
      • 27. September 2017 um 16:20
      • #7

      ja gut da sieht man die Profis :D

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

      Signatur? Was ist eine Signatur? Kann man das essen?

      Bitte beachten: Ich gebe keinen Support über private Nachrichten!


      Ganz wichtig: [Leitfaden] Wie frage Ich richtig um Hilfe?

      Nicht zu vergessen [Tutorial/Selbst-Test] Sollte ich einen Life Server eröffnen ?

    • blackfisch
      Legende
      Reaktionen
      2.944
      Trophäen
      9
      Beiträge
      5.966
      Dateien
      6
      Bilder
      63
      • 27. September 2017 um 16:21
      • #8
      Zitat von Lucian

      Bei splitString musst du aufpassen, da der Befehl bei non ASCII Chars scheiße macht.

      Ja, stimmt schon ^^ Is was dran


      Da ich vor dem Wink mit dem Zaunspfahl schon angefangen hatte, hier mal meine (trotzdem viel zu lange) Lösung des ganzen:

      C
      /*
       File: fn_cutString.sqf
       Author: blackfisch for Native-Network.net
      
       Description:
       cuts a string from desired starting index and returns given number of characters
      */
      params [
          ["_string","",[""]], //string to be split - _this select 0
          ["_start",0,[0]], //index of first extracted element - _this select 1
          ["_length",0,[0]] //number of elements to be extracted - _this select 2
      ];
      private _count = count _string;
      
      if (_count isEqualTo 0) exitWith {}; //no input string
      if (_start > _count) exitWith {}; //starting point out of range
      
      _string = toArray _string; //convert to array
      if (_start < 0) then {_start = 0}; //never start at negative index
      _length = _start + _length; //make length an index
      if (_length > _count) then { _length = _count }; //end point out of range > adjust
      
      for "_i" from _count to _length step -1 do { //delete all chars after length index
          _string deleteAt _i;
      };
      for "_i" from (_start - 1) to 0 step -1 do { //delete all chars before start index
          _string deleteAt _i;
      };
      
      toString _string; //output
      Alles anzeigen

      #MakeArmaNotWar

      Kein Support via PN & Steam! / No Support via DM & Steam!


      Mit freundlichen Grüßen
      blackfisch
      ______________________

      Web: blackfisch.me

      GitHub: GitHub.com/blackfisch

      Mail: [email protected]

      ______________________
      Wichtige Links:
      [Erklärung|Leitfaden] Code Optimierung

      [Tutorial] life_fnc_MP zu remoteExec

      Ohne Logs & entsprechende Dateien kein Support!

      ______________________

    • blackfisch
      Legende
      Reaktionen
      2.944
      Trophäen
      9
      Beiträge
      5.966
      Dateien
      6
      Bilder
      63
      • 27. September 2017 um 16:24
      • #9

      -> verschoben in die Codeschnipsel ^^

      #MakeArmaNotWar

      Kein Support via PN & Steam! / No Support via DM & Steam!


      Mit freundlichen Grüßen
      blackfisch
      ______________________

      Web: blackfisch.me

      GitHub: GitHub.com/blackfisch

      Mail: [email protected]

      ______________________
      Wichtige Links:
      [Erklärung|Leitfaden] Code Optimierung

      [Tutorial] life_fnc_MP zu remoteExec

      Ohne Logs & entsprechende Dateien kein Support!

      ______________________

    • Lucian
      Amateur
      Reaktionen
      172
      Trophäen
      11
      Beiträge
      204
      Bilder
      5
      • 27. September 2017 um 16:33
      • #10
      Zitat von blackfisch

      Ja, stimmt schon ^^ Is was dran


      Da ich vor dem Wink mit dem Zaunspfahl schon angefangen hatte, hier mal meine (trotzdem viel zu lange) Lösung des ganzen:

      C
      /*
       File: fn_cutString.sqf
       Author: blackfisch for Native-Network.net
      
       Description:
       cuts a string from desired starting index and returns given number of characters
      */
      params [
          ["_string","",[""]], //string to be split - _this select 0
          ["_start",0,[0]], //index of first extracted element - _this select 1
          ["_length",0,[0]] //number of elements to be extracted - _this select 2
      ];
      private _count = count _string;
      
      if (_count isEqualTo 0) exitWith {}; //no input string
      if (_start > _count) exitWith {}; //starting point out of range
      
      _string = toArray _string; //convert to array
      if (_start < 0) then {_start = 0}; //never start at negative index
      _length = _start + _length; //make length an index
      if (_length > _count) then { _length = _count }; //end point out of range > adjust
      
      for "_i" from _count to _length step -1 do { //delete all chars after length index
          _string deleteAt _i;
      };
      for "_i" from (_start - 1) to 0 step -1 do { //delete all chars before start index
          _string deleteAt _i;
      };
      
      toString _string; //output
      Alles anzeigen

      Mhhh,

      wenn du es so scheiße machen willst, mach es zumindest so schnell wie möglich. select [] funktioniert auch mit Arrays....

      Code
      params [
       ["_string","",[""]],
       ["_start",0,[0]], 
       ["_length",0,[0]]
      ];
      private _count = count _string;
      _count = _start max 0 min (_count-1);
      _string = toArray _string;
      _string select [_start _length]
      
      toString _string;
      Alles anzeigen
    • blackfisch
      Legende
      Reaktionen
      2.944
      Trophäen
      9
      Beiträge
      5.966
      Dateien
      6
      Bilder
      63
      • 27. September 2017 um 16:38
      • #11
      Zitat von Lucian

      Mhhh,

      wenn du es so scheiße machen willst, mach es zumindest so schnell wie möglich. select [] funktioniert auch mit Arrays....

      Code
      params [
       ["_string","",[""]],
       ["_start",0,[0]], 
       ["_length",0,[0]]
      ];
      private _count = count _string;
      _count = _start max 0 min (_count-1);
      _string = toArray _string;
      _string select [_start _length]
      
      toString _string;
      Alles anzeigen

      Klappe Blödmann ;(8o

      Ich wollte den Code jetzt einfach net "wegschmeißen"... Hatte total nicht im Kopf, dass select ja auch mehrere Argumente nimmt

      #MakeArmaNotWar

      Kein Support via PN & Steam! / No Support via DM & Steam!


      Mit freundlichen Grüßen
      blackfisch
      ______________________

      Web: blackfisch.me

      GitHub: GitHub.com/blackfisch

      Mail: [email protected]

      ______________________
      Wichtige Links:
      [Erklärung|Leitfaden] Code Optimierung

      [Tutorial] life_fnc_MP zu remoteExec

      Ohne Logs & entsprechende Dateien kein Support!

      ______________________

    Registrieren oder Einloggen

    Du bist noch kein Mitglied von NodeZone.net? Registriere dich kostenlos und werde Teil einer großartigen Community!

    Registrieren

    Wichtige Links & Informationen

    Server & Hosting-Ressourcen

      Server Administration & Hosting Basics

      Windows Server Support & Guides

      Linux Server Configuration & Help

      Setting up TeamSpeak 3 & VoIP Servers

      Domains & Web Hosting for Beginners & Professionals

      Cloud Hosting, Docker & Kubernetes Tutorials

    Gameserver & Modding-Ressourcen

      ArmA 3 Tutorials & Script Collection

      Renting & Operating Gameservers

      DayZ Server Management & Help

      FiveM (GTA V) Server & Script Development

      Rust Server Modding & Administration

      Setting up & Optimizing ARK Survival Servers

    NodeZone.net – Deine Community für Gameserver, Server-Hosting & Modding

      NodeZone.net ist dein Forum für Gameserver-Hosting, Rootserver, vServer, Webhosting und Modding. Seit 2015 bietet unsere Community eine zentrale Anlaufstelle für Server-Admins, Gamer und Technikbegeisterte, die sich über Server-Management, Hosting-Lösungen und Spielemodding austauschen möchten.


      Ob Anleitungen für eigene Gameserver, Hilfe bei Root- und vServer-Konfigurationen oder Tipps zu Modding & Scripting – bei uns findest du fundiertes Wissen und praxisnahe Tutorials. Mit einer stetig wachsenden Community findest du hier Antworten auf deine Fragen, Projektpartner und Gleichgesinnte für deine Gaming- und Serverprojekte. Schließe dich NodeZone.net an und werde Teil einer aktiven Community rund um Server-Hosting, Gameserver-Management und Modding-Ressourcen.

    Wer jetzt nicht teilt ist selber Schuld:
    1. Nutzungsbestimmungen
    2. Datenschutzerklärung
    3. Impressum
    4. Urheberrechts- oder Lizenzverstoß melden
  • Trimax Design coded & layout by Gino Zantarelli 2023-2025©
    Community-Software: WoltLab Suite™