# Επιπρόσθετα > Software Η/Υ >  >  ερωτήσεις γιa c# kai coding γενικά

## finos

θέλω να φτιάξω κάτι παρόμοιο με αυτό που έκανε ο φιλαρας εδώ https://www.youtube.com/watch?v=dULnFK6R6XY
όταν πάω να βάλω κουμπάκια με βγάζει αυτό το πράμα :2016-01-26.jpgστα αριστερά είναι το βίντεο και στα δεξιά το δικο μου

 πως θα μπω στον designer της εφαρμογης;

----------


## finos

Γιατί ρε παιδιά κανεις

----------


## nestoras

> Γιατί ρε παιδιά κανεις



Ανάθεμα κι αν κατάλαβε κανείς τι ζητάς....

----------


## finos

> Ανάθεμα κι αν κατάλαβε κανείς τι ζητάς....



το διορθοσα

----------


## Panoss

> το διορθοσα



Ωραία, τώρα το καταλαβαίνουμε όλοι.




















laughing-dog-smiley-emoticon.gif

----------


## street

> το διορθοσα



ποιο ? .... βαγγελη ... 




> πως θα μπω στον designer της εφαρμογης;



πατας f5 .... :Biggrin:    δηλαδη το οτι ειδες το βιντεο και τα λινκ απο κατω και ας πουμε το  καταλαβες   ? υπαρχει υποπτο λινκ απο κατω και στο εχει ετοιμο  ...

----------


## finos

> ποιο ? .... βαγγελη ... 
> 
> πατας f5 ....   δηλαδη το οτι ειδες το βιντεο και τα λινκ απο κατω και ας πουμε το  καταλαβες   ? υπαρχει υποπτο λινκ απο κατω και στο εχει ετοιμο  ...



but only the code

----------


## street

> but only the code



ε ναι τι  ?

----------


## info@kalarakis.com

αν κατάλαβα κάτι από το πρώτο πόστ σου είναι με πιο τρόπο θα προγραμματίσεις το rasbperry με το visual studio 
Για να κάνεις οτι και ο τύπος αυτός θέλει πρώτα ένα υπολογιστή που να τρέχει windows 10 pro και να έχει το visual studio 2016 OXI παλαιότερο.
Μετά θα βάλεις αναζήτηση στο δίκτυο microsoft + rasberry pi2 Θα σε πάει σε μια σελίδα που δίνει οδηγίες πως θα τα συνδέσεις όλα αυτά. Μέχρι εδώ είναι τα εύκολα.
Δυστυχώς δεν έχει γραφικό περιβάλλον τύπου visual studio. Πρέπει να γράφεις  κώδικα για το που θα τοποθετηθούν τα πχ button listbox κτλ 
μπορεί και αν έχει περιβάλλον τύπου VB6 και να μη κατάλαβα εγώ πως το κάνει αν ξέρει κάποιος ή έχει κάποιο οδηγό (που να μη έχει κρυφά σημεία) ας τον δημοσιεύσει να το δούμε και εμείς.

Από τα παραδείγματα που είδα στη ms είναι τύπου console.

----------


## Panoss

Μιχάλη ξέρεις να διαβάζεις fino; :Huh: 
Μήπως αποκρυπτογραφείς και Γραμμική Β';

----------


## finos

Λιπών γραφώ μια εφαρμογή σε c#.net με την οποία θα επικοινωνεί το Arduino  κι θα μου δείχνει στην οθόνη την τάση ,την ένταση και τα w . έχω κάνει :



```
 private void button7_Click(object sender, EventArgs e)      
  {
            while (true)
            {
                label4.Text = serialPort1.ReadLine();
            }

  }
```


2016-04-25.png



Αλλά όταν μπαίνει το στο   while (true)
το πρόγραμμα φριζάρει 
έχετε καμία ιδέα ;
αυτό που σκέπτομαι είναι :10φωρες /sec να ανανεώνει την τιμή στην οθόνη

----------


## Fire Doger

Έχει γραφικό σχεδιασμό, το πόσο αξίζει δεν γνωρίζω, σαν τις μικρές διορθώσεις κατευθείαν στον κώδικα πιστεύω δεν έχει αν κάνεις κάτι περίπλοκο.
Το Rasberry + C# + xml ...... καλή τύχη  :Rolleyes: 
Εμένα μου πήρε μήνες να μάθω να κάνω μέτριο σχέδιο σε xml στο android.

Hint: Μάθε timer και ρύθμισε ticks. Έχεις λειτουργικό και βάζεις while(true)??? Τα πάντα θα είναι σε σχέση με UI και οι μεγάλες λειτουργίες στο παρασκήνιο.

----------


## finos

δεν το θελω για το rpi 2

----------


## SeAfasia

Fino,
έμαθες και C# και όχι C++;

----------


## Fire Doger

> δεν το θελω για το rpi 2



Όπως και στα ηλεκτρονικά που όταν ξεκινάς αναβοσβήνεις ένα λεντ με 100 τρόπους έτσι και στον προγραμματισμό γενικότερα ξεκινάς με κάτι απλό, πατάς ένα κουμπί και σου βγάζει ένα μήνυμα (όπως όταν πατάς ένα κουμπί και ανάβει το λεντ). Σε λειτουργικά επειδή συνήθως χρειάζεσαι ένα ολόκληρο πρότζεκτ χάνεσαι πολύ εύκολα. Ή θα μάθεις όλη την δομή ενός προτζεκτ C# ή θα βρεις έτοιμα παραδείγματα κώδικα και θα προσπαθείς να κάνεις μικρές αλλαγές για να μάθεις "βλέποντας και κάνοντας" αλλά χρειάζεται να έχεις και μία Χ γνώση σε project structure για να καταλαβαίνεις τι κάνεις, όχι να αλλάζεις πράγματα στην τύχη.
Εσύ πάλι ξεκίνησες χωρίς να έχεις ιδέα από C, C# να επικοινωνείς με σειριακή..... και το πρόβλημα ήταν το κουμπί.....

----------


## finos

1 πραμα θελω να μαθω αυτη την στηγμη : στο scrach  που κανουμε στο σχολειο υπαρχει μια εντολη επανελβε (π.χ) 10 και μετα οι εντολες που βαλαμε 
αυτο θελω να κανω κι εγω !
δλδ να μου πειτε την εντολη που θα αντικαταστισω το  true

----------


## Fire Doger

> 1 πραμα θελω να μαθω αυτη την στηγμη : στο scrach  που κανουμε στο σχολειο υπαρχει μια εντολη επανελβε (π.χ) 10 και μετα οι εντολες που βαλαμε 
> αυτο θελω να κανω κι εγω !
> δλδ να μου πειτε την εντολη που θα αντικαταστισω το  true



 :Huh:  :Confused1:  :Unsure:  :Σκέψη: 

for(byte i=0; i<10; i++){
  dosomething();
}

Άσχετο αλλά μπορείς να βάλεις και αυτό αφού ξέρεις κώδικα lego http://blog.ardublock.com/

----------


## finos

> Fino,
> έμαθες και C# και όχι C++;



mου ειναι πιο ευκολο να μαθω την  c# γιατι μιαζει με την wiring (arduino )





> for(byte i=0; i<10; i++){
> dosomething();
> }



δηλαδή :

for(byte i=0; i<10; i++)
{
label4.Text = serialPort1.ReadLine();
}

αυτο να βαλω αντι για το while true ;

----------


## nkarama

> mου ειναι πιο ευκολο να μαθω την  c# γιατι μιαζει με την wiring (arduino )



Μήπως κάνεις κάποιο λάθος? λέω μήπως?

----------


## finos

λιπων απ το καλοκαιρι ασχλουμε με το arduino 
και προσφατα ειδα καπια βιντεο με την c# και με την c++ κι μου καθετε καλυτερα στο ματι η c# 
και θελω να μου πεις κατι αυτο ειναι πιο φιλικο για καπιον που ερχετε απο την γλωσσα του arduino 



```
this->components = (gcnew System::ComponentModel::Container());            this->serialPort1 = (gcnew System::IO::Ports::SerialPort(this->components));
            this->button1 = (gcnew System::Windows::Forms::Button());
            this->label2 = (gcnew System::Windows::Forms::Label());
            this->timer1 = (gcnew System::Windows::Forms::Timer(this->components));
            this->label3 = (gcnew System::Windows::Forms::Label());
            this->label4 = (gcnew System::Windows::Forms::Label());
            this->button2 = (gcnew System::Windows::Forms::Button());
            this->label5 = (gcnew System::Windows::Forms::Label());
            this->listBox1 = (gcnew System::Windows::Forms::ListBox());
            this->comboBox1 = (gcnew System::Windows::Forms::ComboBox());
            this->label1 = (gcnew System::Windows::Forms::Label());
            this->SuspendLayout();
```


ή αυτο :


```
            progressBar2.Value = 100;            trackBar1.Value = 100;
            label5.Text = "100";
            serialPort1.WriteLine("fan");
            serialPort1.WriteLine("100");
```





```
// the setup function runs once when you press reset or power the board
voidsetup(){
// initialize digital pin 13 as an output.
pinMode(13,OUTPUT);
}

// the loop function runs over and over again forever
voidloop(){
digitalWrite(13,HIGH);// turn the LED on (HIGH is the voltage level)
delay(1000);// wait for a second
digitalWrite(13,LOW);// turn the LED off by making the voltage LOW
delay(1000);// wait for a second
}
```

----------


## nkarama

Κατ αρχάς σχολίασα μόνο την φράση σου περι Wiring. Η Wiring είναι C++ τελευταία φορά που κοίταξα...

Φίλε μου, γλώσσα "Arduino" δεν υπάρχει. 

Υπάρχει η C++ η οποία με διάφορες επιπλέον κλάσεις (libraries) κρύβει την πολύπλοκότητα του HArdware και με συγκεκριμένους compilation κανόνες φτιάχνει ένα binary πρόγραμμα κατάλληλο για τους επεξεργαστές που υποστηρίζονται απο την πλατφόρμα του Arduino (σχεδόν όλη η σειρά ATMega της Atmel)

Παρόλα αυτά, δεν θα διαφωνήσω μαζί σου. Η C# φαίνετε αρκετά ευκολότερη στην ανάγνωση απο την C++, μοίαζει μάλιστα καταπληκτικά με Java. Βέβαια τα δύο παραπάνω κομμάτια κώδικα που έβαλες δεν έχουν καμμία σχέση μεταξύ τους μιας και το πρώτο "φτιάχνει" την φόρμα ενώ το δεύτερο προυποθέτει ότι η φόρμα υπάρχει (και πίστεψέ με εκεί που φτιάχνετε η φόρμα υπάρχει ανάλογη πολυπλοκότητα)
Και μην ξεχνάς ότι C# σε  οτιδήποτε άλλο εκτός απο Windows, ξέχνα την....


εν ολίγης, έχεις μπερδέψει λίγο την βούρτσα με την .... 
Πετάγεσε απο το ένα στο άλλο χωρίς σκοπό και αιτία... παρακολουθώ λίγο καιρό το φόρουμ και έχω δει και άλλες συζητήσεις που έχουν γίνει με εσένα και είναι πάντα ένα ευχάριστο διάλειμα!

----------


## finos

το ξέρω ότι είναι διαφορετικοί κώδικες , ειναι διαφορετικά project .
δεν θυμόμουν  πια γλωσσα τρέχει το Arduino

----------


## finos

δύστυχος το προγραμματίσω φρειζάρει χειρότερα  :Sad:  :Angry: 
σκέφτομαι να το κανω με το mouse_Hover αντί για mouse_click καλη ιδέα ;
θελετε να βαλω ολον τον κωδικα ;

----------


## SeAfasia

*αραμαικά ή αρχαία Χαλδειική διάλεκτο...*

----------


## finos

Γιατί είναι σε αραμαϊκά ;
Από το word τα περασα

----------


## Fire Doger

Έχεις στίσει data recieve handler?
Δουλεύεις με Try-Catch?
Είναι λάθος να δουλεύεις με Polling.

http://stackoverflow.com/questions/1...hen-data-comes
Ότι θέλεις να κάνεις πρώτα θα ψάχνεις στο StackOverflow, έχει τα πάντα.

----------


## finos

Ναι το ξέρω με έχει βοηθήσει παρα πολύ

----------


## finos

ΕΤΙΜΟΟΟΟΟΟΟΟΟ!
απλως εβαλα εναν timer κι εκανα :




> private void timer1_Tick(object sender, EventArgs e) 
>        {
>             label4.Text = serialPort1.ReadLine();
>         }



και μια εροτησουλα πως θα φτιαξω μια αντηστηχη εφαρμογη για ubuntu ?

----------


## finos

εχω ενα μικρο προβλιματατακι εχω γραψει το προγραμα για να ελενχω το psu απο το pc αλα δεν δουλεβει 
ενω το arduino λαμβανει τισ εντολες (switch case 5 λεντακια κι τα  αναβοσβινω με τα κουμπια ) 
εχω βαλει μια label κι κανω το εξις



> label3.Text = serialPort1.ReadLine();



οταν συνδεομαι στο arduino και δεν ανανεωνει (μεσω ενος timer ) κι μου φριζαρει το προγραμα 
 private void timer1_Tick(object sender, EventArgs e)
        {
            label3.Text = serialPort1.ReadLine();



        }
τι πρεπι να κανω;για να παιξει
The thread 0x2cb4 has exited with code 0 (0x0). αυτο μου βγαζει

----------


## finos

κανεις ;
καταλαβατε ή να τα ξανα πω;

----------


## SProg

Στελνεις μεσω σειριακης με το Arduino και θελεις να το εμφανιζεις σε ενα .Text σε C#;

Απο το Arduino και στελνεις δεδομενα και δεχεσαι;

Δεν καταλαβα ποιος Freeza-αρει απο τα 2.Εαν εννοεις το C# προγραμμα τοτε θα βγαλουμε ακρη.

----------


## finos

ναι το c# προγραμα

----------


## finos

Πως θα κάνω ενα text box να δεχετε μονο αριθμούς και μονο συγκεκριμένη ς μορφής πχ 21.1
Δλδ δυο ψηφία πριν το κόμα και 1 μετα ;
Ευχάριστω

----------


## finos

καταλαβατε τι θελω να κανω

----------


## SeAfasia

> καταλαβατε τι θελω να κανω



να σου πω τι είδους αριθμός είναι ο 21.1 στον προγραμματισμό;

----------


## finos

Όχι απλώς θέλω εν textbox να δεχετε μονο  αριθμούς αυτής της μορφής

----------


## picdev

Δες τι ιδιότητες έχει το text box

Στάλθηκε από το 2014813 μου χρησιμοποιώντας Tapatalk

----------

finos (24-07-16)

----------


## finos

http://www.c-sharpcorner.com/uploadf...ox-in-C-Sharp/ νατοοοοο 
Με custom mask ωπος ακριβώς το θέλω oh yes

----------


## xmaze

εχει πλάκα που γραφεις μια πρόταση και πρέπει να καταλάβουμε, γενικά επειδή η C# είναι για μένα κόκκινο πανί, εφόσον υπαρχουν τόσες άλλες γλώσσες. 

Ειχα κάνει παλιότερα ενα προτζεκτ με C++/QT και C για τον AT90CAN128 οπου επικοινονούσαν μέσω UART  και διάβαζα CAN stacks απο  αυτοκίνητα. 

Αν δεν βαριέσαι κάτσε και δές τον κώδικα πως το είχα κάνει. https://github.com/ntosis/openCANalysis

βεβαια δεν ξέρω αν έχει παρόμοιες συναρτήσεις η C# με το QT framework.

----------


## finos

θελω να κανω μια ερωτηση εχω βαλει menu strip κι θαελω μεσα απο αυτο να μανατζαρω τοις com ports2016-07-26 (2).pngoπως βλεπετε κατω δεξια εχω ενα panel οπου ριθμιζω com port baudrate και συνδεομαι 
εγω θελω να τα βαλω ολλα στο menustrip καπως ετσι 2016-07-26 (1).png (εκει στο "1" θα ειναι τα com ports )
αλλα εχω μια υποψια ... τα κοματια μεσα στο menuστριπ ειναι κατι σαν κουμπια αρα δεν θα μπωρουν να ειναι combo boxes σωστα 
ο κωδiκας ειναι στο github (v2)

----------


## Fire Doger

https://msdn.microsoft.com/en-us/lib...v=vs.110).aspx

Δεν το δοκίμασα αλλά νομίζω είναι αυτό που θες.
Επίσης μπορείς να βάλεις εικόνες δίπλα από κάθε επιλογή και αν είναι επιλεγμένη ή όχι η εικόνα θα αντιστοιχεί σε tick ή full transparency.

Άσχετο, αν δεις το psu του Μάνου επέλεξε να κάνει αυτό που κάνεις με labview που είναι για αυτήν την δουλειά. Εσύ γιατί παλεύεις με C?

----------


## finos

γιατι 
α με βολευει 
β δεν ξερω labview
γ δεν βρισκω το labview στο pirate 
δ ειναι πανακριβο ενω η c# τσαμπα

----------


## Fire Doger

α) οκ
β) Ενώ C# πετάς :Lol:  Κανείς δεν γεννήθηκε ξέροντας κάτι
γ) kick is back
δ) no logic σε σχέση με το γ

Με ότι θες κάντο απλώς για σένα το λέω είναι καλύτερο το labview για ότι μπλιμπλίκια κάνεις στο μέλλον να τα έχεις όλα μαζί απ' το να γράφεις εφαρμογές που θέλουν και σεβαστό χρόνο ανάπτυξης.

Και είναι καλύτερο να μάθεις το industry standard για πολλούς λόγους.
ΠΧ το steam ζητάει Altium, με eagle δεν πας πουθενά. Το ίδιο συμβαίνει και με όλα τα προγράμματα solidworks-autocad vs όλα τα άλλα κλπ κλπ
Ίσως πρέπει να ξανασκεφτείς τα προγράμματα που μαθαίνεις μήπως καταναλώνεις τζάμπα χρόνο

----------


## finos

να σου πω την αλιθεια ειχα το visual studio στο pc γιατι ηθελα ( :Rolleyes: εγω το ψονιο )να γραψω uwp εφαρμογη  και λεω δεν γραφω μια uwp για να εποικινωνει το arduino το πισι τελικα εκανα μια χ86 και μετα ειδα του μανου κι τοτε καταλαβα οτι το labview δεν ειναι για ...(νομιζα οτι ητανε τιπου excel )

----------


## finos

https://www.youtube.com/watch?v=t4pnjGdExBE
προσπαθω να κανω αυτο εδω αλλα δεν τα καταφερνω εκει που πανω να κανω πχ : textbox t=new texbox(); δεν βρισκω το textbox που ειναι στην form2 απο την form 1  
help
@fire doger 
τρ το καταλαβα για το γ) kick is back μπα καλυτερα c αν κανω κατι αλο κι θελω lab view τα προχωρισω

----------


## Fire Doger

> https://www.youtube.com/watch?v=t4pnjGdExBE
> προσπαθω να κανω αυτο εδω αλλα δεν τα καταφερνω εκει που πανω να κανω πχ : textbox t=new texbox(); δεν βρισκω το textbox που ειναι στην form2 απο την form 1  
> help
> @fire doger 
> τρ το καταλαβα για το γ) kick is back μπα καλυτερα c αν κανω κατι αλο κι θελω lab view τα προχωρισω



Δεν έκανες τα textbox public ή έχεις ορθογραφικό στο form2. (ή όπως αλλιώς το βάφτισες)
Και είναι και φοβερό παράδειγμα..... Dialog result χρειάζεται, και μπορείς να έχεις και απλώς 2 public μεταβλητές στην form2 και να διαβάζεις εκείνες αντί να διαβάζεις τα textbox δεν είμαι σίγουρος ποιο είναι καλύτερο.

Από default είναι private ότι δεν ορίζεις.

----------


## finos

γεια σας 
μετα απο ωρες ψαξιμο διχως κανενα αποτελεσμα αποφασησα να ρωτισω 
πρωσπαθω εδω και λιγο καιρο να κανω το arduino του τροφοδοτικου να συνδέεται με την εφαρμογη που εγραψα για το pc  για αρχη σκεφτηκα να το κανω με  map() αλλα δεν δουλεψε μετα σκευτικα οτι το arduino θα στελνει "volt"|"amp"|"vset"|"aset"
και σε καθε | η c# να κοβει αυτο το κοματι και να το βαζει σε νεα μεταβλητή . 
με βαση αυτο 


 θεωρητικώς θα μπορουσα να το κανω αλλα οταν βαζω input την σηριακη και οχι textbox και μετα πως τα βαζω σε διαφορετικες μεταβλιτες ?  :Head: 



```
            char thespilt = Convert.ToChar("|");//set the spilt point
            var _in = Console.ReadLine();//read the console
            string[] words = _in.Split(thespilt);//splitit!
            foreach (string word in words)
            {
                Console.WriteLine(word);
            }


            Thread.Sleep(10000);
```


oκωδικας για αρχη διαβαζει την comand line

----------


## Fire Doger

Που χάθηκες εσύ???????? :Confused1: 

'Αρχικά δες *εδώ* που το δούλεψα 1 μήνα και την έχω περιποιημένη την επικοινωνία με αναζήτηση com, disconnect listeners, friendly names (είτε έχει drivers είτε είναι απλό ftdi).
GPL το έχω πάρε κάντο ότι θες....


1. char poo = '|'; //" " == string, ' ' == char
2. Αν σου δουλεύει η split (βάλε break point στην επόμενη εντολή, πάνε τον κέρσορα πάνω στην words και δες τα δεδομένα του πίνακα) τι την θες την foreach?
Άλλο arduino που κάνεις debug με σειριακή άλλο σε C#, εδώ δουλεύεις με break points, μπορείς να αλλάξεις τις τιμές και τον κώδικα ενώ τρέχει όποια στιγμή θες.

Επίσης το arduino θα στέλνει "volt|amp|vset|aset" 1 string με 4 τιμές. "volt" "|" "amp" "|" "vset" "|" "aset" αυτό είναι 7 string και δεν θα δουλέψει η split γιατί τρέχει ο κώδικας 7 φορές 1 για κάθε string ξεχωριστά.

----------


## finos

Καλημέρα 
Και πάλι δεν καταλαβαίνω πως θα τα χωρισω σε διαφορετικές μεταβλητές.

----------


## Fire Doger

Τι εννοείς?
Πχ το arduino στέλνει καθαρή πληροφορία "5|6|7" (χαρακτήρες αρχής, τέλους, checksum κλπ τα παραβλέπουμε)

str = "5|6|7";
string[] tokens = str.Split('|');
Το αποτέλεσμα θα είναι ο tokens ένας πίνακας 1x3 με 3 string, θέση [0] το "5", [1] το "6", [2] το "7"

Και άμα θέλεις να είναι αριθμοί τους κάνεις parse 1-1 
http://stackoverflow.com/questions/5...number-c-sharp

----------


## finos

και  μετα θελω να ειναι σε 3 αλες μεταβλητες οπου μετα θα γραφετε σε label και σε exel για log 
δεν μπωρω καταλαβω πως θα τα βαλω σε string

----------


## Fire Doger

> και  μετα θελω να ειναι σε 3 αλες μεταβλητες οπου μετα θα γραφετε σε label και σε exel για log 
> δεν μπωρω καταλαβω πως θα τα βαλω σε string



Γιατί? Βόλτες σ' αρέσει να τα κάνεις?
 label1.Text = tokens[0]; //"5"
label2.Text = tokens[1]; //"6"
label2.Text = tokens[2]; //"7"

Αντί για label μπορείς να έχεις string.
Το ίδιο και όταν τα βάζεις στο excel.
Από thread νομίζω βγάζει error γιατί δεν έχει πρόσβαση και τα κάνεις public τα label ή static function στον κώδικα της φόρμας αν θυμάμαι καλά...

----------


## finos

δεν δουλευω threading "παιζω " με timers για αυτον ακριβως τον λογο 



> ...τhread νομίζω βγάζει error γιατί δεν έχει πρόσβαση και τα κάνεις public τα label ...



ευχαριστω πολυ

----------


## finos

μια γρήγορη ερώτηση το string[] αποθηκεύει το input : τεστ 1 σαν "τεστ" "1" στις αντιστοιχες θέσεις [1] kai [2]? ή σαν "t" "e" ?
ή το τελευτεο το κανει το char[]?

----------


## picdev

Φίνο βλέπω ακόμα δεν έχεις καταλάβει τι είναι το ASCII τι είναι το string και τι είναι το char , είναι τρόποι αναπαράστασης ,τα δεδομένα δεν αλλάζουν .
Καλύτερα κάτσε και διάβασε.
Εγώ θα ξεκινούσα με το να καταλάβω τι είναι το ASCII

----------


## Fire Doger

Βαγγέλη είναι ένα κομμάτι που θέλει καλή κατανόηση.
Άλλο το string, άλλο το []
To string δεν είναι απλώς μια μεταβλητή αλλά μια κλάση η οποία διαχειρίζεται char array. Σε ένα array προκαθορίζεις το μέγεθός του και είναι πάντα στην ίδια θέση στην Ram.
Ένα string αποθηκεύετε στο heap. Αν πχ έχεις ένα string 10 χαρακτήρων η κλάση θα ζητήσει ένα μέρος που να χωράει 10 χαρακτήρες και θα το βάλει. Αν μετά προσθέσεις και άλλους χαρακτήρες θα ρωτήσει αν μπορεί να μεγαλώσει το μέγεθος του string, αν μπορεί έχει καλώς, αν δεν μπορεί τότε θα ζητήσει νέα θέση που να χωράει 11 χαρακτήρες και ότι υπάρχει στους 10 θα το μεταφέρει στην νέα θέση με αποτέλεσμα να έχεις μια τρύπα 10 byte στο heap. Σε OS δεν είναι κάτι τρομερό αλλά σε μΕ είναι μεγάλο πρόβλημα.

string[] δεν μπορείς να κάνεις πολύ απλά γιατί δεν μπορείς να καπαρώσεις θέσεις μνήμης γιατί κάθε string έχει δυναμικό μέγεθος.
Αυτό που μπορείς να κάνεις στην C# είναι List<string>.

Δες και εδώ για να μάθεις περισσότερα για το arduino https://hackingmajenkoblog.wordpress...duino-strings/

----------


## finos

α δεν σας ειπα .....το καταφερα



```
char thespilt = '|';//the spilt point                         var _in = Console.ReadLine();//read the console
            string[] words = _in.Split(thespilt);//splitit!                     
            var word1 = Convert.ToDecimal(words[0]);
            Console.WriteLine(word1);
            var int1 = Convert.ToDecimal(words[1]);
            Debug.WriteLine(int1);
            Thread.Sleep(10000);
            Thread.Sleep(1000);
```


σε θεοριτικο επιπεδο δουλεει 
η εισοδος θα ειναι "0,00|0,00|00,0|0,00" (ν|Α|νset|aset)  εχει προβλεφθεί μοναχα για τα 2 πρωτα

----------


## finos

μπορει μια βηβλιοθηκη c++ να παιξει στην c#?

----------


## Fire Doger

Δεν έχω ιδέα. Τι βιβλιοθήκη?

----------


## Panoss

Βάγγο το λογικό είναι να μη μπορεί.
Όμως, μπορεί να υπάρχει αντίστοιχη για c#.
Για ποια βιβλιοθήκη ρωτάς;

----------


## finos

Για το nvidia api είναι c++κι θέλω να το ενσωματωσω σε ενα project σαν το open hardware monitor (c# αλλά δεν καταλαβαίνω πως θα περνώ πληροφορίες απο την gpu μου

----------

