ERLEDIGT
JA
JA
ANTWORTEN
6
6
ZUGRIFFE
192
192
EMPFEHLEN
-
Hallo Tutorials Community!
Ich habe derzeit ein Problem mit der Kommunikation zwischen einem Pic und einem PC.
Und zwar würde ich gerne mit einem C# Programm ein Int senden, welches eine fixe Länge von Diggits hat.
Also in der Form: 001, 055, 200, usw.
Ich habe bei Google schon Ergebnisse mit Strings gefunden, aber hat Integer auch eine Funktion die diese "Umwandlung" erlaubt?
Mit freundlichen Grüßen Manuel
-
Nein, für einen Integer gibt es keine direkte Möglichkeit führende Nullen anzuhängen. Aber eine andere Frage dazu: Wenn du Integers direkt senden kannst, warum brauchst du dann die genaue Länge?
Falls dus mit Strings lösen willst kann ich dir die Funktion String.PadLeft empfehlen.
-
Ich hätte die führenden Nullen gerne, damit ich es in meinem C Programm leichter habe, da es dort mit der String und Int behandlung etwas komplizierter zugeht als in dem C# Programm und außerdem will ich auf dem Pic RAM sparen da das drauf laufende Programm noch ein wenig komplizierter wird :P
Aber danke für deine schnelle Antwort! Ich denk wir werden es mit Strings regeln.
Lösung:
Wenn die Zahl größer als 10 ist:
String s;
if(zahl<10)
s="00"+zahl;
if(zahl>=10)
s="0"+zahl;
return s;
-
Wenn du übers Netzwerk sowieso Strings sendest kannst du alle Padding Operationen eh auf String Basis machen. Aber Integers würde ich persönlich eher Binär übertragen als in Textform, da du sonst auch immer das Problem mit . als Komma oder als Tausendertrennzeichen hast.
Zu deinem Code:
macht genau das selbe wie dein Code.Code csharp:1
String s = zahl.ToString().PadLeft(3, '0');
-
Es sollten keine Komma bzw. Tausendertrennzeichen auftreten.
Die Zahl behandelt eine fortlaufende Nummer, welche mit jedem Paket um eins höher gezählt wird und wir rechnen damit das diese nicht über 1000 kommen wird.
Weiters basiert unser Protokoll auf Ascii Zeichen und nicht auf Binärer Übertragung.
Ich denke mal wir werden deine Zeile verwenden, da uns das 4 Zeilen Code erspart
Danke dir!!
-
Interessant, die PadLeft-Methode kannte ich nicht.
Alternativ kannst du auch der ToString-Methode die Anzahl der Nuller mitgeben:
Genauso kann man auch festlegen, dass keine Tausendertrennzeichen verwendet werden sollen. Ich finde leider grad kein Beispiel für Letzteres.Code csharp:1 2
int Zahl = 1; String result = Zahl.ToString("000");
hihi = -h²
-
20.07.11 12:43 #7
- Registriert seit
- Feb 2008
- Ort
- Salzhemmendorf(Nds)
- Beiträge
- 51
In Deinem Beispiel werden standmässig keine Tausenderzeichen ausgegebenGenauso kann man auch festlegen, dass keine Tausendertrennzeichen verwendet werden sollen.
Ein Beispiel für Ausgabe=Anzeige von Tausenderpunkten:
Code :1 2 3
int zahl = 1234; String result = String.Format("{0:#,#}", zahl); // result-> 1.234
result ergibt im obigen Beispiel für zahl=0 einen Leerstring.
Soll zahl auch mit 0 als String dargestellt werden soll, dann so formatieren:
Zu erwähnen sei noch: bei diesen Formatierungen wird keine feste Länge vorgeben!Code :1
String.Format("{0:#,0}", zahl);Es ist erstaunlich, was man alles findet, wenn man etwas sucht...
Ähnliche Themen
-
FIxen Bereich erstellen
Von oldputz1990 im Forum CSSAntworten: 10Letzter Beitrag: 06.07.07, 11:17 -
Unseren Syntaxhighlighter Fixen
Von Thomas Darimont im Forum Javascript & AjaxAntworten: 40Letzter Beitrag: 06.06.06, 13:32 -
Animation fixen?
Von MaxCina im Forum 3D Studio MaxAntworten: 2Letzter Beitrag: 04.08.03, 08:48 -
Scroller Fixen
Von tilman im Forum Javascript & AjaxAntworten: 3Letzter Beitrag: 18.09.01, 13:26





Zitieren
Login





