<?xml version="1.0" encoding="UTF-8" ?>
<?xml-stylesheet type="text/xsl" href="https://www.dotnetzone.gr:443/cs/utility/FeedStylesheets/rss.xsl" media="screen"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:wfw="http://wellformedweb.org/CommentAPI/"><channel><title>Visual Basic 6.0</title><link>https://www.dotnetzone.gr:443/cs/forums/25/ShowForum.aspx</link><description>Θέματα που αφορούν την VB6 και COM components</description><dc:language>el</dc:language><generator>CommunityServer 2.1 SP3 (Build: 20423.1)</generator><item><title>Απ: Κάτι σαν overwrite</title><link>https://www.dotnetzone.gr:443/cs/forums/thread/31937.aspx</link><pubDate>Fri, 18 May 2007 23:51:32 GMT</pubDate><guid isPermaLink="false">2622095e-976c-431a-859e-16783ec7ecd7:31937</guid><dc:creator>pantelee</dc:creator><slash:comments>0</slash:comments><comments>https://www.dotnetzone.gr:443/cs/forums/thread/31937.aspx</comments><wfw:commentRss>https://www.dotnetzone.gr:443/cs/forums/commentrss.aspx?SectionID=25&amp;PostID=31937</wfw:commentRss><description>&lt;BLOCKQUOTE&gt;&lt;div&gt;&lt;img src="http://www.dotnetzone.gr/cs/Themes/default/images/icon-quote.gif"&gt; &lt;strong&gt;Παναγιώτης Καναβός:&lt;/strong&gt;&lt;/div&gt;&lt;div&gt;Ποιά ακριβώς είναι η ερώτηση?&lt;/div&gt;&lt;/BLOCKQUOTE&gt;&lt;br&gt;
Όπως και στο παράδειγμα, θέλω να ανοίγω ένα αρχείο και το μέγεθός του
να ορίζεται από τις καταχωρήσεις που θα κάνω (όπως γίνεται όταν το
αρχείο δημιουργείται για πρώτη φορά) και όχι μόνο να αυξάνεται όταν οι
καταχωρήσεις που κάνω το ξεπερνούν (που κάτι τέτοιο γίνεται όταν το αρχείο υπάρχει πριν το Open).&lt;br&gt;
&lt;br&gt;
Με την γραμμή&lt;br&gt;
Open App.Path &amp;amp; "\File.txt" For &lt;b&gt;Output &lt;/b&gt;Access Write As #1&lt;br&gt;
το αρχείο ουσιαστικά διαγράφεται. Αλλά με την &lt;br&gt;
Open App.Path &amp;amp; "\File.txt" For &lt;b&gt;Random &lt;/b&gt;Access Write As #1&lt;br&gt;
όχι.&lt;br&gt;
&lt;br&gt;
Θα ήθελα και να χρησιμοποιήσω Random Access και να διαγραφτεί πρώτα το
αρχείο. Σκέφτηκα να το διαγράψω πρώτα με ξεχωριστή γραμμή και μετά να
βάλω την γραμμή του Open. Ρωτάω αν υπάρχει κάποιος πιο σωστός τρόπος.&lt;br&gt;
&lt;br&gt;
Όσο για το FileSystemObject ενώ το έχω δουλέψει, δεν γνωρίζω ανάλογό του με το Put - Get #F, &lt;b&gt;RecNumber&lt;/b&gt;,
Var όπου διαβάζεις συγκεκριμένη εγγραφή. Και για τη βάση δεδομένων έχω
δρόμο ακόμα (δεν μπορώ να ορίσω κάποια πράγματα ακόμη σε RunTime που θα
μου χρειάζονταν).&lt;br&gt;</description></item><item><title>Απ: Κάτι σαν overwrite</title><link>https://www.dotnetzone.gr:443/cs/forums/thread/31795.aspx</link><pubDate>Tue, 15 May 2007 07:32:08 GMT</pubDate><guid isPermaLink="false">2622095e-976c-431a-859e-16783ec7ecd7:31795</guid><dc:creator>Παναγιώτης Καναβός</dc:creator><slash:comments>0</slash:comments><comments>https://www.dotnetzone.gr:443/cs/forums/thread/31795.aspx</comments><wfw:commentRss>https://www.dotnetzone.gr:443/cs/forums/commentrss.aspx?SectionID=25&amp;PostID=31795</wfw:commentRss><description>&lt;P&gt;Ποιά ακριβώς είναι η ερώτηση? Εφόσον ανοίγεις ένα αρχείο για Random Access, μπορείς να γράψεις σε όποιο record θέλεις. Αν θέλεις να γράψεις από την αρχή, άνοιξε το αρχείο με άλλο τρόπο.&lt;/P&gt;
&lt;P&gt;Έτσι κι αλλιώς, η χρήση των Open, Put, Close κλπ είναι εξαιρετικά περιορισμένη. Για αρχεία κειμένου, το FileSystemObject είναι πολύ ισχυρότερο από αυτές τις εντολές. Όπου χρειάζεται η αποθήκευση δομημένης πληροφορίας, είναι πολύ ευκολότερο να χρησιμοποιήσεις μία βάση δεδομένων. Οι εντολές αυτές υπάρχουν πλέον για ιστορικούς λόγους.&lt;/P&gt;</description></item><item><title>Κάτι σαν overwrite</title><link>https://www.dotnetzone.gr:443/cs/forums/thread/31794.aspx</link><pubDate>Tue, 15 May 2007 07:19:55 GMT</pubDate><guid isPermaLink="false">2622095e-976c-431a-859e-16783ec7ecd7:31794</guid><dc:creator>pantelee</dc:creator><slash:comments>0</slash:comments><comments>https://www.dotnetzone.gr:443/cs/forums/thread/31794.aspx</comments><wfw:commentRss>https://www.dotnetzone.gr:443/cs/forums/commentrss.aspx?SectionID=25&amp;PostID=31794</wfw:commentRss><description>Στον παρακάτω κώδικα δημιουργώ (ας πούμε ότι δεν υπάρχει ήδη) ένα
αρχείο στο οποίο κάνω καταχωρήσεις τιμών στις θέσεις 11, 12, 13.&lt;br&gt;
&lt;br&gt;
Dim S As Single, D As Date, L As Long&lt;br&gt;
Dim FF As Integer&lt;br&gt;
FF = FreeFile&lt;br&gt;
&lt;br&gt;
S = 4.34&lt;br&gt;
D = "27/01/1976"&lt;br&gt;
L = 1987654&lt;br&gt;
&lt;br&gt;
Open App.Path &amp;amp; "\File.txt" For Random Access Write As #FF Len = 8&lt;br&gt;
&amp;nbsp; Put #FF, 11, S&lt;br&gt;
&amp;nbsp; Put #FF, 12, D&lt;br&gt;
&amp;nbsp; Put #FF, 13, L&lt;br&gt;
Close #FF&lt;br&gt;
&lt;br&gt;
Το αρχείο είναι πλέον 13 * 8 = 104 byte. (*)&lt;br&gt;
&lt;br&gt;
Αν στη συνέχεια κάνω την ίδια δουλειά στο υπάρχον αρχείο, αλλά αυτή τη
φορά στις θέσεις 1, 2, 3 τότε το αρχείο θα ανοίξει, θα ενημερωθεί στις
θέσεις 1, 2, 3 σύμφωνα με τις τιμές που έδωσα και ... θα παραμείνει 104
byte και όχι 3 * 8 = 24 byte. (*)&lt;br&gt;
&lt;br&gt;
Από τη μια αυτό που γίνεται μπορεί να φανεί πολύ χρήσιμο, αλλά από την άλλη μπορεί να φανεί άχρηστο και προβληματικό.&lt;br&gt;
&lt;br&gt;
Βρίσκομαι στη δεύτερη περίπτωση.&lt;br&gt;
Το απλό που σκέφτομαι είναι να διαγράψω πρώτα το αρχείο και στη
συνέχεια να δημιουργήσω ένα καινούργιο αρχείο στην ίδια διαδρομή. Δε
μου φαίνεται όμως δόκιμο.&lt;br&gt;
Τι λέτε;&lt;br&gt;
&lt;br&gt;
Ευχαριστώ&lt;br&gt;
Παντελής&lt;br&gt;
&lt;br&gt;
(*) δεν πρέπει να 'ναι απόλυτο αυτό που λέω. Είναι όμως βοηθητικό ώστε να διατυπώσω την ερώτησή μου.&lt;br&gt;</description></item></channel></rss>