nekstath Δημοσ. 13 Σεπτεμβρίου 2010 Δημοσ. 13 Σεπτεμβρίου 2010 Καλησπέρα σε όλους. Συγχωρέστε με εάν έχω ανοίξει σε λάθος σημείο νέο θέμα ή αν η ερώτηση που θα κάνω έχει γίνει ήδη αλλά όσο και αν έψαξα δεν μπόρεσα να βρω πουθενά απάντηση στο πρόβλημά μου. Το πρόβλημά μου είναι ότι σε ένα πρόγραμμα που φτιάχνω θέλω σε κάποιο σημείο ο χρήστης να μου δίνει μια μαθηματική εξίσωση και το πρόγραμμα να φτιάχνει την γραφική της. Έψαξα στο ίντερνετ βρήκα πληροφορίες για το MsChart που έχει η VB6 αλλά κάτι πρέπει να έκανα λάθος και δεν μου έβγαζε σωστά την γραφική. Συνέχισα το ψάξιμο και βρήκα το "FusionCharts for VB", πολύ καλό πρόγραμμα, μου βγάζει σωστά τις γραφικές αλλά έχει ένα πρόβλημα, αν του βάλω να μου κάνει την χ=1.3 μου φτιάχνει την χ=13 και αν του βάλω την χ=1,3 δεν μου εμφανίζει τίποτα. Από ότι κατάλαβα για να δουλέψει σωστά θέλει για κόμμα το "." ενώ η vb6 θέλει το ",". Μπορεί κάποιος να με βοηθήσει με αυτό το πρόβλημα ή να μου προτείνει κάποιο άλλο με το οποίο να κάνω την δουλειά μου? Ευχαριστώ εκ των προτέρων! Υ.Γ. Έφτιαξα μια συνάρτηση που να μου μετατρέπει το "1,3" σε "1.3" αλλά όταν μετατρέπω την μεταβλητή από string σε single τότε η μεταβλητή παίρνει τον αριθμό "13".
nekstath Δημοσ. 13 Σεπτεμβρίου 2010 Μέλος Δημοσ. 13 Σεπτεμβρίου 2010 Βασικά το χ=1,3 είναι παράδειγμα. Το πρόβλημα είναι ότι δεν ξέρω πόσα δεκαδικά μπορεί να μου δώσει ο χρήστης. Δηλαδή άλλωτε μπορεί να δώσει την πχ 3*χ^3+0,0234*χ^2-1,2*χ+0,0000234 και άλλωτε την 3*χ^3+0,34*χ^2-2*χ+0,234 Οπότε αν και καλή ιδέα δεν με βολεύει σε όλες τις περιπτώσεις.
macabre_sunsets Δημοσ. 13 Σεπτεμβρίου 2010 Δημοσ. 13 Σεπτεμβρίου 2010 Τουλάχιστον θα δεις άμα παίζει. Εαν παίζει τότε μπορείς να διαβάσεις το πλήθος των δεκαδικών κάθε φορά και να διαιρέσεις με το 10^ν. Βέβαια είναι λίγο "μπακαλίστικος" τρόπος αλλά άμα παίζει... Επίσης μήπως υπάρχει κάποιο θέμα με τα Cultures (ή όπως λέγονται στην VB6); Δηλαδή βλέπει το "." για "," και τούμπαλιν και για αυτό σου δημιουργεί πρόβλημα (όπως αναφέρεις και εσύ);
ntaryl Δημοσ. 13 Σεπτεμβρίου 2010 Δημοσ. 13 Σεπτεμβρίου 2010 καλησπερα Κυκλοφορουν διαφορα τετοια activex αλλα trial .... Δοκιμασε να δεις πιο σου κανει ?
nekstath Δημοσ. 14 Σεπτεμβρίου 2010 Μέλος Δημοσ. 14 Σεπτεμβρίου 2010 Σε ευχαριστώ πολύ φίλε macabre_sunsets για την ιδέα. Ναι είναι λίγο "μπακάλικος" τρόπος αλλά θα το δοκιμάσω μπας και βοηθήσει. Φίλε ntaryl το έχω ακούσει και γω αυτό να μου το λένε και άλλοι, αλλά δεν είμαι και πολύ σχετικός με τα activex στοιχεία οπότε όσο και αν έχω κοιτάξει δεν έχω βρει κάτι (μάλλον δεν ξέρω πως να το ψάξω σωστά). Αν έχεις να μου προτείνεις κάποιο θα το εκτιμούσα. (Αυτό που ψάχνω είναι να φτιάχνει την γραφική μιας μαθηματικής εξίσωσης, όχι τίποτα πολύπλοκο.)
macabre_sunsets Δημοσ. 14 Σεπτεμβρίου 2010 Δημοσ. 14 Σεπτεμβρίου 2010 Έχεις δοκιμάσει να την φτιάξεις μόνος σου χρησιμοποιώντας lines? Φαντάζομαι ότι θα θέλεις μια γραφική για ένα περιορισμένο αριθμό Χ και Υ (100, 1000, 10000, όχι άπειρο παντως). Δεδομένου του Χ θα βρίσκεις τις τιμές του Υ και θα δημιουργείς ένα ζευγάρι αριθμών. Έπειτα θα δημιουργείς ένα line που θα συνδέει το παρών ζευγάρι με το προηγούμενο. Έτσι θα δημιουργηθεί η γραφική, βέβαια δεν θα είναι και πολύ ομαλή αλλά ίσως κάνεις την δουλειά σου μάλλον.
nekstath Δημοσ. 14 Σεπτεμβρίου 2010 Μέλος Δημοσ. 14 Σεπτεμβρίου 2010 Έχεις δοκιμάσει να την φτιάξεις μόνος σου χρησιμοποιώντας lines? Φαντάζομαι ότι θα θέλεις μια γραφική για ένα περιορισμένο αριθμό Χ και Υ (100, 1000, 10000, όχι άπειρο παντως).Δεδομένου του Χ θα βρίσκεις τις τιμές του Υ και θα δημιουργείς ένα ζευγάρι αριθμών. Έπειτα θα δημιουργείς ένα line που θα συνδέει το παρών ζευγάρι με το προηγούμενο. Έτσι θα δημιουργηθεί η γραφική, βέβαια δεν θα είναι και πολύ ομαλή αλλά ίσως κάνεις την δουλειά σου μάλλον. Το έχω δοκιμάσει, είχα βάλει και μικρό βήμα και ήταν μια χαρά η καμπύλη. Το πρόβλημα που είχα ήταν οτί ενώ μπορούσα και ρύθμιζα τον Χ άξονα, όταν έκανα ακριβώς το ίδιο στον Υ δεν έπιανε με αποτέλεσμα η καμπύλη να μην μου φαίνεται στο παράθυρο. Μετά δεν είχα και στους άξονες τιμές, πχ "1,2,3,... κλπ" και το εγκατέλειψα. Λογικά θα γίνεται αλλά επειδή δεν είμαι και γνώστης της γλώσσας και κάτι τέτοια τώρα τα μαθαίνω με τη βοήθεια του google, δεν ήξερα πως να το φτιάξω και το άφησα.
nekstath Δημοσ. 20 Σεπτεμβρίου 2010 Μέλος Δημοσ. 20 Σεπτεμβρίου 2010 Τουλάχιστον θα δεις άμα παίζει. Εαν παίζει τότε μπορείς να διαβάσεις το πλήθος των δεκαδικών κάθε φορά και να διαιρέσεις με το 10^ν. Βέβαια είναι λίγο "μπακαλίστικος" τρόπος αλλά άμα παίζει...Επίσης μήπως υπάρχει κάποιο θέμα με τα Cultures (ή όπως λέγονται στην VB6); Δηλαδή βλέπει το "." για "," και τούμπαλιν και για αυτό σου δημιουργεί πρόβλημα (όπως αναφέρεις και εσύ); Τελικά δεν παίζει αυτός ο τρόπος γιατί πάλι όταν κάνει την πράξη εσωτερικά βάζει το ","....
virxen75 Δημοσ. 21 Σεπτεμβρίου 2010 Δημοσ. 21 Σεπτεμβρίου 2010 το πρόβλημα σου έχει να κάνει με τα regional settings των windows στον υπολογιστή σου.Μπορείς να αλλάξεις τις ρυθμίσεις εκεί και να αλλάξεις την υποδιαστολή από , σε . ή να το κάνεις έτσι > Private Function fixkoma(text As String, koma As Boolean) As String Dim i, length As Integer length = Len(text) Dim komaprin, komameta As String komaprin = "," komameta = "." If koma = True Then komaprin = "." komameta = "," End If For i = 1 To length If Mid(text, i, 1) = komaprin Then text = Left(text, i - 1) + komameta + Right(text, length - i) Next fixkoma = text End Function Private Sub Form_Load() Dim koma As Boolean koma = True If Val("69.69") = 69.69 Then koma = False MsgBox Val(fixkoma("12,345", koma)) MsgBox Val(fixkoma("12.345", koma)) End Sub το οποίο δουλεύει πάντα ανεξάρτητα από τα regional settings του pc σου.
nekstath Δημοσ. 21 Σεπτεμβρίου 2010 Μέλος Δημοσ. 21 Σεπτεμβρίου 2010 Εγώ είχα φτιάξει αυτό τον κώδικα για να μου το μετατρέπει: > Private Sub Command1_Click() Dim x As String Dim y As Single x = Text1.Text x = fNumb(x) Label1.Caption = x End Sub Private Function fNumb(num) Dim TestArray() As String Dim Num1, Num2 As String Dim z, lenZ As Integer TestArray() = Split(num, ",") 'split --> divides the string. Each piece i in Array(i) Num1 = Val(TestArray(0)) z = 0 For Each cell In TestArray() z = z + 1 Next cell If z = 2 Then Num2 = TestArray(1) ' Val(TestArray(1)) lenZ = Len(Num2) Else lenZ = -1 Num2 = 0 End If Num1 = CStr(Num1) Num2 = CStr(Num2) fNumb = Num1 + "." + Num2 If lenZ > 0 Then Label2.Caption = lenZ ' gia na mou deiksei posa psifia exei meta to koma Else Label2.Caption = " --- " End If 'fNumb = CSng(fNumb) End Function Αλλά και πάλι δεν μου δούλευε γιατί όταν κάνω αυτή την πράξη για να αποθηκεύσω το αποτέλεσμα σε έναν πίνακα > For X = Strt To Stp If A <> 0 Or B <> 0 Or C <> 0 Or D <> 0 Or E <> 0 Then arrData(iDat, 0) = iDat arrData(iDat, 1) = ((A / 10 ^ nA) * X ^ 4 + (B / 10 ^ nB) * X ^ 3 + (C / 10 ^ nC) * X ^ 2 + (D / 10 ^ nD) * X + (E / 10 ^ nE)) iDat = iDat + 1 End If Next X στην πράξη πχ "A / 10 ^ nA" (όπου nA τα ψηφία που έχει μετά το κόμμα) το αποτέλεσμα πάλι το αποθηκεύει με "," και όταν περνάω τον πίνακα αυτό στο άλλο για να μου φτιάξει την γραφική δεν δουλεύει. Ελπίζω να μην σας μπέρδεψα, απλά νομίζω ότι και πάλι θα έχω το ίδιο πρόβλημα. Με λίγα λόγια θέλω να γίνεται η πράξη κανονικά και όταν είναι να το αποθηκεύσω να είναι με "." για να δουλέψει.
virxen75 Δημοσ. 21 Σεπτεμβρίου 2010 Δημοσ. 21 Σεπτεμβρίου 2010 στείλε το project σου σε ένα zip αρχείο να στο φτιάξω.
Προτεινόμενες αναρτήσεις
Αρχειοθετημένο
Αυτό το θέμα έχει αρχειοθετηθεί και είναι κλειστό για περαιτέρω απαντήσεις.