String modifizieren?!

  • VB.NET

Es gibt 52 Antworten in diesem Thema. Der letzte Beitrag () ist von RodFromGermany.

    genau. Gibt String zurück. Warum also hängst du noch ein .Tostring hintendran?

    startIndex und length also.
    Als lenght hast du die Gesamtlänge des Richtextboxtextes-1 angegeben.
    wenn StartIndex also zB 10 ist, so schießt das Ende des Substrings wohl um 9 über die Gesamtlänge hinaus.
    angenommen ein String mit 80Zeichen.

    davon soll ein TeilString ausgeschnitten werden, ab dem 10. Zeichen.

    Wie lang kann dieser Teilstring maximal sein?

    Was passiert, wenn man als TeilStringlänge nun 79 angibt?




    Das mit dem Tostring ist eine annere Baustelle. Es ist einfach unsinn, an einen String noch ein .Tostring anzuhängen, denn stringiger es ist ja bereits ein String.
    jo, ich denke, programmieren hat für dich keinen Sinn.
    So kommst du nicht weiter, wenn du selbst mit Hilfe von aussen Stunden brauchst, um so eine einfache Methode wie String.Substring(start, length) zu raffeln.
    Weil bei all der Mühe verlierst du dein Ziel aus den Augen - ich denke nämlich - dafür brauchst du garkein Substring, aber sicher binnichnicht.
    Aber ist sicher gut, die Substring-Methode zu verstehen, und warum man von einem String der Länge 80 keinen Teilstring der Länge 79 abrufen kann, wenn der Teilstring erst an Index 10 starten soll.
    Programmieren ist denke ich mal keine Sache, die man entweder kann oder nicht kann und ich wage halt zu behaupten, dass jeder programmieren lernen kann, allerdings braucht jeder einen Ansatzpunkt.
    Ich würde dir eher ans Herz legen, dich einfach mal dahinter zu klemmen. Versuch' einfach mal, zu verstehen, wie du dir solche Sachen selber erarbeiten kannst und drösel dir die Probleme auf, auf die du stoßt:
    - Was ist das Ziel?
    - Wenn ich es von Hand erreichen wollte, wie würde ich da vorgehen?
    - Welche Anlaufstellen kenne ich, welche Analogien gibt es zwischen meinem Problem und den mir bekannten Lösungen?
    - Wo und wodurch könnte ich fündig werden?

    Punkt 2 dürfte bis zu einem gewissen "Level" vmtl. eins der wichtigsten sein. Ein Beispiel wäre bspw. ein Text: Ich habe einen Text "Hallo Welt". Als erstes möchte ich die Zahl der Buchstaben ermitteln. Dazu zähle ich halt alle Buchstaben. Wenn ich die Zahl später nochmal brauch, merk' ich sie mir halt. Analog läuft's beim FW. String repräsentiert Texte und somit auch Texte, wie Hallo Welt. Die Zahl der Buchstaben wird in Length zurückgegeben. Das merkt sich die Werte ebenfalls.
    Wenn du nun den z.B. 5. Buchstaben haben möchtest (beginnend beim 0. Buchstaben "H"c), zählst du halt von 0 bis 5 und gehst dabei immer einen Buchstaben weiter. Wenn du die Position von "Welt" möchtest, vergleichst du beim lesen jeden Buchstaben mit einem "W", wenn er ein "W" ist, überprüfst du, ob der nächste ein "e" ist usw. bis zum "t". Wenn es für alle gilt, hast du die Position von "Welt".
    Solche Grundlagen erhältst du durch das Lesen und Verstehen eines Grundlagenbuchs oder durch selbständiges Einarbeiten von einem Ausgangspunkt aus. Das Grundlagenbuch wäre ebenfalls ein Ausgangspunkt. Du musst dich aber wirklich dransetzen und es lernen wollen, nicht nur das fertige Programm. Dazu musst du wissen, wie du dein Werkzeug verwendest, etc. Das kostet halt einfach Zeit und bringt Erfahrung. Bspw. weißt du irgendwann, dass auch Zeilenumbrüche Zeichen (Chars) sind und dass Chars durch einen c-PostFix("x"c) dargestellt werden, der bei Strings fehlt und dass Chars eben einstellig sind.
    Das obige Beispiel ist einfach, aber das gilt auch für kompliziertere Fälle.

    Gruß
    ~blaze~
    @blaze:

    Danke fur deine Antwort.
    Ich weiss das ich noch die Basics lernen muss, doch Kriege ich mehr und mehr das Gefühl das mein Ansatz mit txt Datein falsch ist.
    Welche file formate nutzt ihr Erfahrenen VBler um verschiedene Datensätze online schnell und unkompliziert auslesen/bearbeiten/löschen/hinzufügen könnt?
    C# Developer
    Learning C++
    Das Problem bei diesem Ansatz ist einfach, dass du die Clients arbeiten lassen willst, statt dem Server, der eigentlich zuständig ist für das ganze. D.h. du verbindest dich auf den Server und teilst diesem mit, was er zu tun hat. Der Server kann dann den Eintrag löschen. Perfekt geeignet für Datenverwaltung ist nat. eine Datenbank. Andererseits kannst du auch einfach auf dem Server ein Programm oder Script laufen lassen (erfordert allerdings Kenntnis über Http oder Php/Asp.Net/... was auch immer auf dem Server läuft, geht ja auch ein eigenes Programm), das die Datenverwaltung übernimmt. Für viele Clients ist eine Datenbank sehr sinnvoll. Zudem bieten diese auch noch viele zusätzliche Features, die du später ggf. noch brauchen wirst. Das erfordert halt wiederum Kenntnisse in den jeweiligen Gebieten.

    Gruß
    ~blaze~

    Rikudo schrieb:

    VB.NET-Quellcode

    1. Dim sortiert As String = RichTextBox1.Text.Substring(RichTextBox1.Text.IndexOf(TextBoxID.Text), RichTextBox1.Text.Length - 1)
    ist doch eine etwas unübersichtliche Zeile, zerlege sie. Dann findest Du auch leichter die Fehler.
    Zunächst würde ich nachsehen, ob der Suchstring ühaupt in der RTB vorkommt und den Rest in ein If packen:

    VB.NET-Quellcode

    1. Dim sortiert = String.Empty
    2. Dim index = RichTextBox1.Text.IndexOf(TextBoxID.Text)
    3. If index >= 0 Then
    4. Dim laenge = RichTextBox1.Text.Length - 1 - index ' oder was anderes richtiges
    5. sortiert = RichTextBox1.Text.Substring(index, laenge)
    6. End If
    Falls Du diesen Code kopierst, achte auf die C&P-Bremse.
    Jede einzelne Zeile Deines Programms, die Du nicht explizit getestet hast, ist falsch :!:
    Ein guter .NET-Snippetkonverter (der ist verfügbar).
    Programmierfragen über PN / Konversation werden ignoriert!

    ~blaze~ schrieb:

    Programmieren ist denke ich mal keine Sache, die man entweder kann oder nicht kann und ich wage halt zu behaupten, dass jeder programmieren lernen kann,
    tja, seh ich anners.
    Menschen haben unterschiedliche Begabungen, wie sie unterschiedliche Körper haben, und wie sie überhaupt unterschiedlich sind. Klar, bisserl proggen kann jeder lernen, so wie jeder auch prinzipiell musikalisch ist, oder jeder kann turnen, oder jeder hat ein gewisses Einfühlungsvermögen, und wasses sonst noch an tausenden von Begabungen geben mag.
    Auf Programmier-Begabung braucht man sich auch garnix einzubilden - es gibt haufenweise wesentlich wichtigere Begabungen.

    RodFromGermany schrieb:

    Rikudo schrieb:

    VB.NET-Quellcode

    1. Dim sortiert As String = RichTextBox1.Text.Substring(RichTextBox1.Text.IndexOf(TextBoxID.Text), RichTextBox1.Text.Length - 1)
    ist doch eine etwas unübersichtliche Zeile, zerlege sie. Dann findest Du auch leichter die Fehler.
    Zunächst würde ich nachsehen, ob der Suchstring ühaupt in der RTB vorkommt und den Rest in ein If packen:

    VB.NET-Quellcode

    1. Dim sortiert = String.Empty
    2. Dim index = RichTextBox1.Text.IndexOf(TextBoxID.Text)
    3. If index >= 0 Then
    4. Dim laenge = RichTextBox1.Text.Length - 1 - index ' oder was anderes richtiges
    5. sortiert = RichTextBox1.Text.Substring(index, laenge)
    6. End If

    Danke erstmal für deine Antwort, allerdings wirft mir das auch eine Outofrange Exception in dieser Zeile:

    VB.NET-Quellcode

    1. sortiert = RichTextBox1.Text.Substring(index, laenge)


    Eigenen sich XML Dateien denn auch um sie online zu bearbeiten, einträge zu löschen, hinzuzufügen etc?
    C# Developer
    Learning C++

    RodFromGermany schrieb:

    VB.NET-Quellcode

    1. ' oder was anderes richtiges
    @Rikudo:: Wir sind hier im Hauptforum, da erwarte ich mal von Dir, dass Du die richtigen Schlussfolgerungen ziehen kannst.
    Falls Du diesen Code kopierst, achte auf die C&P-Bremse.
    Jede einzelne Zeile Deines Programms, die Du nicht explizit getestet hast, ist falsch :!:
    Ein guter .NET-Snippetkonverter (der ist verfügbar).
    Programmierfragen über PN / Konversation werden ignoriert!