Autor |
Beitrag |
tomycat
      
Beiträge: 265
Erhaltene Danke: 1
|
Verfasst: So 15.04.18 16:42
hallo,
ich habe einen Array, der heist vielezahlen.
Von 0 bis 13 Stellen.
Der Inhalt sieht z.b. so aus:
Array 1: 2: 3: 4: 5: 6: 7: 8: 9: 10:
| 12 123456789 666 12 666 12 123456789 62626 64848 1234567890123 |
Jetzt möchte ich gerne den Array in einen String ausgeben, nach jeder Zahl kommt ein Schrägstrich r und ein Schrägstrich n. Erst die kleinen Zahlen, dann die großen.
Die Lösung für 3 Stellen und 25 Elemente, aber ich habe 13 Stellen und evtl 1000 Elemente !!!
C#-Quelltext 1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13:
| string dieAusgabe = "";
for(int arrayduchlauf = 0; arrayduchlauf < 25;arrayduchlauf++) { for(int b = 0; b < 1000;b++) { if(b == vielezahlen[arrayduchlauf]) { dieAusgabe += vielezahlen[arrayduchlauf].toString(); dieAusgabe += "\r\n"; } } } |
Moderiert von Th69: Code-Tags hinzugefügt
|
|
Th69
      

Beiträge: 4796
Erhaltene Danke: 1059
Win10
C#, C++ (VS 2017/19/22)
|
Verfasst: So 15.04.18 17:00
Wie soll genau die Ausgabe aussehen? Einfach nur das Array sortieren und daraus dann einen String erzeugen?
Ich verstehe auch noch nicht, was die Anzahl der Stellen ausmachen soll.
Für diesen Beitrag haben gedankt: tomycat
|
|
tomycat 
      
Beiträge: 265
Erhaltene Danke: 1
|
Verfasst: So 15.04.18 17:03
thx,
die Schleife läuft dann 13 000 000 mal 1000 durch, das wäre meine erste Lösung, das geht doch einfacher.
|
|
Th69
      

Beiträge: 4796
Erhaltene Danke: 1059
Win10
C#, C++ (VS 2017/19/22)
|
Verfasst: So 15.04.18 17:05
Wofür ist überhaupt die innere Schleife?
Poste mal, wie genau die Ausgabe für das obige Array aussehen soll.
Btw: Ein Array kannst du auch einfacher mittels foreach(var x in array) durchlaufen (ohne festen Grenzen), aber das solltest du ja eigentlich wissen.
Für diesen Beitrag haben gedankt: tomycat
|
|
jfheins
      
Beiträge: 918
Erhaltene Danke: 158
Win 10
VS 2013, VS2015
|
Verfasst: So 15.04.18 22:26
tomycat hat folgendes geschrieben : | Jetzt möchte ich gerne den Array in einen String ausgeben, nach jeder Zahl kommt ein Schrägstrich r und ein Schrägstrich n. Erst die kleinen Zahlen, dann die großen.
|
Also ein klarer Fall von "sortiern". Schauib mal dort: www.dotnetperls.com/array-sort sogar mit Beispiel 
Für diesen Beitrag haben gedankt: tomycat
|
|
tomycat 
      
Beiträge: 265
Erhaltene Danke: 1
|
Verfasst: Mo 16.04.18 20:14
|
|
Ralf Jansen
      
Beiträge: 4708
Erhaltene Danke: 991
VS2010 Pro, VS2012 Pro, VS2013 Pro, VS2015 Pro, Delphi 7 Pro
|
Verfasst: Mo 16.04.18 21:05
Du weist doch wie groß dein Array sein muss wieso initialisierst du das Array mit 1000 Stellen?
Und dann würde ich dir empfehlen deinen Code einfach mal zu debuggen. Das Problem sollte dich fast anspringen so offensichtlich ist das.
Für diesen Beitrag haben gedankt: tomycat
|
|
tomycat 
      
Beiträge: 265
Erhaltene Danke: 1
|
Verfasst: Mo 16.04.18 21:08
sorry ich sehe nur Wald
Bitte gebe mir einen Tip
|
|
Ralf Jansen
      
Beiträge: 4708
Erhaltene Danke: 991
VS2010 Pro, VS2012 Pro, VS2013 Pro, VS2015 Pro, Delphi 7 Pro
|
Verfasst: Mo 16.04.18 21:16
Stell dir vor in deinem Grid sind 50 Zeilen.
Du schreibst nun diese 50 Zeilen in das Array das 1000 Stellen hat.
Jetzt sortierst du diese 1000 strings (Ein leerer String ist kleiner als irgendein anderer string).
Du hast jetzt also 950 Leerstrings und hinten dran 50 aus dem Grid (passend sortiert).
Jetzt versuchst du die ersten 50 dieser 1000 strings in den savetext string zu schreiben und diese 50 sind natürlich alle leer.
Das Problem wäre dir sofort aufgefallen wenn du debuggt hättest. Beim debuggen einfach mal per Debugger in der_inhalt reinschauen am besten nach dem Sortieren und es hätte dir auffallen müssen. Ich kann nur jedem Anfänger raten "lernt debuggen"! bevor ihr irgendwas weiteres versucht. Ansonsten programmiert ihr nicht ihr versucht nur halbwegs gebildetes raten.
Einfache Lösung ist also bei diesem Code dem Array die richtige Länge zu geben. Nicht 1000 sondern die Länge die du ja bereits weist.
Für diesen Beitrag haben gedankt: tomycat
|
|
Frühlingsrolle
Ehemaliges Mitglied
Erhaltene Danke: 1
|
Verfasst: Di 17.04.18 02:49
- Nachträglich durch die Entwickler-Ecke gelöscht -
Für diesen Beitrag haben gedankt: tomycat
|
|
tomycat 
      
Beiträge: 265
Erhaltene Danke: 1
|
Verfasst: Di 17.04.18 06:12
ja und nein,
ich dachte erst, ich schneide die ersten 13 Stellen ab und sortiere Sie nach Zahlen. Wenn ich weis, dass z.B. Array[1] -> 0000000000000 als erste kommt, nehme ich den kompetten String mit und stelle ihn als erste Stelle da. ---> 0000000000000-Alles ist Null
Aber so wie ich es jetzt verstanden habe kann ich auch den kompletten string nehmen und ihn sortieren lassen.
Vor Prinzip her möchte ich einen Array füllen mit 13 Stellen Zahlen + Text und den sortiert ausgeben in einen String.
Moderiert von Th69: Vollzitat entfernt.
|
|
Frühlingsrolle
Ehemaliges Mitglied
Erhaltene Danke: 1
|
Verfasst: Di 17.04.18 06:22
- Nachträglich durch die Entwickler-Ecke gelöscht -
Für diesen Beitrag haben gedankt: tomycat
|
|
tomycat 
      
Beiträge: 265
Erhaltene Danke: 1
|
Verfasst: Mi 18.04.18 23:28
kann man so sagen,
wie gesagt, ich hatte die Idee, die 13 Stellen abschneiden um zu wissen, ob welche Zahlenreihe/Text zuerst kommt. Das hat sich als Käse herausgestellt.
Du kannst es dir auch so vorstellen:
In Excel steht...
A1 Zahl/Text drin, sowie A2......A1000. Dann makiert man alles und läst es sorieren.
Mit dem Unterschied, Array[0] bis Array[50] oder bis vielleicht [2000]. Es muss nicht umbedingt auf oder absteigend sein, es soll einfach sortierter aussehen.
|
|
Frühlingsrolle
Ehemaliges Mitglied
Erhaltene Danke: 1
|
Verfasst: Do 19.04.18 03:31
- Nachträglich durch die Entwickler-Ecke gelöscht -
|
|