Questo sito utilizza cookies, anche di terze parti, per mostrare pubblicità e servizi in linea con il tuo account. Leggi l'informativa sui cookies.
Username: Password: oppure
C/C++ - [Visual C++] Richiesta aiuto inserimento stringa in campo dataGridView da txt
Forum - C/C++ - [Visual C++] Richiesta aiuto inserimento stringa in campo dataGridView da txt

Avatar
cimo (Normal User)
Newbie


Messaggi: 18
Iscritto: 19/12/2009

Segnala al moderatore
Postato alle 16:34
Sabato, 19/12/2009
Ciao a tutti...
sto' scrivendo un programma per la gestione di un tabellone pubblicitario
Sto' imparando adesso e ho un problema con l'inserimento di una stringa, presa da un file txt, dentro un dataGridView
Codice sorgente - presumibilmente C++

  1. #pragma once
  2.  
  3. #include "stdlib.h"
  4. #include "iostream"
  5. #include "fstream"
  6. #include "string"
  7. using namespace std;
  8.  
  9. namespace Tabellone {
  10.  
  11.         using namespace System;
  12.         using namespace System::ComponentModel;
  13.         using namespace System::Collections;
  14.         using namespace System::Windows::Forms;
  15.         using namespace System::Data;
  16.         using namespace System::Drawing;
  17.  
  18.         /// <summary>
  19.         /// Riepilogo per Form1
  20.         ///
  21.         /// AVVISO: se si modifica il nome della classe, sarà necessario modificare la
  22.         ///          proprietà 'Nome file di risorse' relativa allo strumento Compilatore di risorse gestite
  23.         ///          associato a tutti i file RESX da cui dipende la classe. In caso contrario,
  24.         ///          le finestre di progettazione non saranno in grado di interagire correttamente con le
  25.         ///          risorse localizzate associate al form.
  26.         /// </summary>
  27.         public ref class Form1 : public System::Windows::Forms::Form
  28.         {
  29.         public:
  30.                 Form1(void)
  31.                 {
  32.                         InitializeComponent();
  33.                         //
  34.                         //TODO: aggiungere qui il codice del costruttore.
  35.                         //
  36.                 }
  37.  
  38.         protected:
  39.                 /// <summary>
  40.                 /// Liberare le risorse in uso.
  41.                 /// </summary>
  42.                 ~Form1()
  43.                 {
  44.                         if (components)
  45.                         {
  46.                                 delete components;
  47.                         }
  48.                 }
  49.         private: System::Windows::Forms::DataGridView^  dataGridView1;
  50.         private: System::Windows::Forms::MenuStrip^  menuStrip1;
  51.         private: System::Windows::Forms::ToolStripMenuItem^  menuToolStripMenuItem;
  52.         private: System::Windows::Forms::ToolStripMenuItem^  apriToolStripMenuItem;
  53.         private: System::Windows::Forms::ToolStripMenuItem^  salvaToolStripMenuItem;
  54.         private: System::Windows::Forms::ToolStripMenuItem^  esciToolStripMenuItem;
  55.         private: System::Windows::Forms::DataGridViewTextBoxColumn^  Column1;
  56.         private: System::Windows::Forms::DataGridViewTextBoxColumn^  Column2;
  57.         private: System::Windows::Forms::DataGridViewTextBoxColumn^  Column3;
  58.  
  59.         protected:
  60.  
  61.         private:
  62.                 /// <summary>
  63.                 /// Variabile di progettazione necessaria.
  64.                 /// </summary>
  65.                 System::ComponentModel::Container ^components;
  66.  
  67. #pragma region Windows Form Designer generated code
  68.                 /// <summary>
  69.                 /// Metodo necessario per il supporto della finestra di progettazione. Non modificare
  70.                 /// il contenuto del metodo con l'editor di codice.
  71.                 /// </summary>
  72.                 void InitializeComponent(void)
  73.                 {
  74.                         System::ComponentModel::ComponentResourceManager^  resources = (gcnew System::ComponentModel::ComponentResourceManager(Form1::typeid));
  75.                         this->dataGridView1 = (gcnew System::Windows::Forms::DataGridView());
  76.                         this->Column1 = (gcnew System::Windows::Forms::DataGridViewTextBoxColumn());
  77.                         this->Column2 = (gcnew System::Windows::Forms::DataGridViewTextBoxColumn());
  78.                         this->Column3 = (gcnew System::Windows::Forms::DataGridViewTextBoxColumn());
  79.                         this->menuStrip1 = (gcnew System::Windows::Forms::MenuStrip());
  80.                         this->menuToolStripMenuItem = (gcnew System::Windows::Forms::ToolStripMenuItem());
  81.                         this->apriToolStripMenuItem = (gcnew System::Windows::Forms::ToolStripMenuItem());
  82.                         this->salvaToolStripMenuItem = (gcnew System::Windows::Forms::ToolStripMenuItem());
  83.                         this->esciToolStripMenuItem = (gcnew System::Windows::Forms::ToolStripMenuItem());
  84.                         (cli::safe_cast<System::ComponentModel::ISupportInitialize^  >(this->dataGridView1))->BeginInit();
  85.                         this->menuStrip1->SuspendLayout();
  86.                         this->SuspendLayout();
  87.                         //
  88.                         // dataGridView1
  89.                         //
  90.                         this->dataGridView1->AccessibleDescription = nullptr;
  91.                         this->dataGridView1->AccessibleName = nullptr;
  92.                         this->dataGridView1->AllowUserToResizeColumns = false;
  93.                         this->dataGridView1->AllowUserToResizeRows = false;
  94.                         resources->ApplyResources(this->dataGridView1, L"dataGridView1");
  95.                         this->dataGridView1->BackgroundImage = nullptr;
  96.                         this->dataGridView1->ColumnHeadersHeightSizeMode = System::Windows::Forms::DataGridViewColumnHeadersHeightSizeMode::AutoSize;
  97.                         this->dataGridView1->Columns->AddRange(gcnew cli::array< System::Windows::Forms::DataGridViewColumn^  >(3) {this->Column1,
  98.                                 this->Column2, this->Column3});
  99.                         this->dataGridView1->Font = nullptr;
  100.                         this->dataGridView1->Name = L"dataGridView1";
  101.                         this->dataGridView1->RowHeadersVisible = false;
  102.                         //
  103.                         // Column1
  104.                         //
  105.                         resources->ApplyResources(this->Column1, L"Column1");
  106.                         this->Column1->Name = L"Column1";
  107.                         this->Column1->Resizable = System::Windows::Forms::DataGridViewTriState::False;
  108.                         //
  109.                         // Column2
  110.                         //
  111.                         resources->ApplyResources(this->Column2, L"Column2");
  112.                         this->Column2->Name = L"Column2";
  113.                         this->Column2->Resizable = System::Windows::Forms::DataGridViewTriState::False;
  114.                         //
  115.                         // Column3
  116.                         //
  117.                         resources->ApplyResources(this->Column3, L"Column3");
  118.                         this->Column3->Name = L"Column3";
  119.                         this->Column3->Resizable = System::Windows::Forms::DataGridViewTriState::False;
  120.                         //
  121.                         // menuStrip1
  122.                         //
  123.                         this->menuStrip1->AccessibleDescription = nullptr;
  124.                         this->menuStrip1->AccessibleName = nullptr;
  125.                         resources->ApplyResources(this->menuStrip1, L"menuStrip1");
  126.                         this->menuStrip1->BackgroundImage = nullptr;
  127.                         this->menuStrip1->Font = nullptr;
  128.                         this->menuStrip1->Items->AddRange(gcnew cli::array< System::Windows::Forms::ToolStripItem^  >(1) {this->menuToolStripMenuItem});
  129.                         this->menuStrip1->Name = L"menuStrip1";
  130.                         //
  131.                         // menuToolStripMenuItem
  132.                         //
  133.                         this->menuToolStripMenuItem->AccessibleDescription = nullptr;
  134.                         this->menuToolStripMenuItem->AccessibleName = nullptr;
  135.                         resources->ApplyResources(this->menuToolStripMenuItem, L"menuToolStripMenuItem");
  136.                         this->menuToolStripMenuItem->BackgroundImage = nullptr;
  137.                         this->menuToolStripMenuItem->DropDownItems->AddRange(gcnew cli::array< System::Windows::Forms::ToolStripItem^  >(3) {this->apriToolStripMenuItem,
  138.                                 this->salvaToolStripMenuItem, this->esciToolStripMenuItem});
  139.                         this->menuToolStripMenuItem->Name = L"menuToolStripMenuItem";
  140.                         this->menuToolStripMenuItem->ShortcutKeyDisplayString = nullptr;
  141.                         //
  142.                         // apriToolStripMenuItem
  143.                         //
  144.                         this->apriToolStripMenuItem->AccessibleDescription = nullptr;
  145.                         this->apriToolStripMenuItem->AccessibleName = nullptr;
  146.                         resources->ApplyResources(this->apriToolStripMenuItem, L"apriToolStripMenuItem");
  147.                         this->apriToolStripMenuItem->BackgroundImage = nullptr;
  148.                         this->apriToolStripMenuItem->Name = L"apriToolStripMenuItem";
  149.                         this->apriToolStripMenuItem->ShortcutKeyDisplayString = nullptr;
  150.                         //
  151.                         // salvaToolStripMenuItem
  152.                         //
  153.                         this->salvaToolStripMenuItem->AccessibleDescription = nullptr;
  154.                         this->salvaToolStripMenuItem->AccessibleName = nullptr;
  155.                         resources->ApplyResources(this->salvaToolStripMenuItem, L"salvaToolStripMenuItem");
  156.                         this->salvaToolStripMenuItem->BackgroundImage = nullptr;
  157.                         this->salvaToolStripMenuItem->Name = L"salvaToolStripMenuItem";
  158.                         this->salvaToolStripMenuItem->ShortcutKeyDisplayString = nullptr;
  159.                         //
  160.                         // esciToolStripMenuItem
  161.                         //
  162.                         this->esciToolStripMenuItem->AccessibleDescription = nullptr;
  163.                         this->esciToolStripMenuItem->AccessibleName = nullptr;
  164.                         resources->ApplyResources(this->esciToolStripMenuItem, L"esciToolStripMenuItem");
  165.                         this->esciToolStripMenuItem->BackgroundImage = nullptr;
  166.                         this->esciToolStripMenuItem->Name = L"esciToolStripMenuItem";
  167.                         this->esciToolStripMenuItem->ShortcutKeyDisplayString = nullptr;
  168.                         this->esciToolStripMenuItem->Click += gcnew System::EventHandler(this, &Form1::esciToolStripMenuItem_Click);
  169.                         //
  170.                         // Form1
  171.                         //
  172.                         this->AccessibleDescription = nullptr;
  173.                         this->AccessibleName = nullptr;
  174.                         resources->ApplyResources(this, L"$this");
  175.                         this->AutoScaleMode = System::Windows::Forms::AutoScaleMode::Font;
  176.                         this->BackgroundImage = nullptr;
  177.                         this->Controls->Add(this->dataGridView1);
  178.                         this->Controls->Add(this->menuStrip1);
  179.                         this->Font = nullptr;
  180.                         this->Icon = nullptr;
  181.                         this->MainMenuStrip = this->menuStrip1;
  182.                         this->MaximizeBox = false;
  183.                         this->Name = L"Form1";
  184.                         this->Load += gcnew System::EventHandler(this, &Form1::Form1_Load);
  185.                         (cli::safe_cast<System::ComponentModel::ISupportInitialize^  >(this->dataGridView1))->EndInit();
  186.                         this->menuStrip1->ResumeLayout(false);
  187.                         this->menuStrip1->PerformLayout();
  188.                         this->ResumeLayout(false);
  189.                         this->PerformLayout();
  190.  
  191.                 }
  192.                 void toRead()
  193.                 {
  194.                         /*
  195.                         String^letturaCampo;
  196.  
  197.                         ifstream fileDaLeggere("Dati.txt",ios::in);
  198.  
  199.                         while(!fileDaLeggere.eof())
  200.                         {
  201.                                 getline(fileDaLeggere,letturaCampo);
  202.                         }
  203.  
  204.                         fileDaLeggere.close();
  205.                         */
  206.  
  207.                         /*String^titolo;
  208.  
  209.                         ifstream infile("Dati.txt",ios::in);
  210.                        
  211.                         while(infile.good())
  212.                                 titolo;*/
  213.                 }
  214.                 void toInsertDataGridView1()
  215.                 {                      
  216.                         String^titolo;
  217.  
  218.                         ifstream infile("Dati.txt",ios::in);
  219.                        
  220.                         while(infile.good())
  221.                                 titolo;
  222.                        
  223.                         array<String^>^riga0 = {titolo,"01/01/2009","01/01/2010"};
  224.                         array<String^>^riga1 = {"Spot 2","02/02/2009","02/02/2010"};
  225.                         array<String^>^riga2 = {"Spot 3","03/03/2009","03/03/2010"};
  226.  
  227.                         {
  228.                                 DataGridViewRowCollection^ riga = this->dataGridView1->Rows;
  229.                                 riga->Add(riga0);
  230.                                 riga->Add(riga1);
  231.                                 riga->Add(riga2);
  232.                         }
  233.  
  234.                         {
  235.                                 DataGridViewColumnCollection^ columns = this->dataGridView1->Columns;
  236.                                 columns[0]->DisplayIndex = 0;
  237.                                 columns[1]->DisplayIndex = 1;
  238.                                 columns[2]->DisplayIndex = 2;
  239.                         }
  240.                 }
  241. #pragma endregion
  242.         private: System::Void Form1_Load(System::Object^  sender, System::EventArgs^  e)
  243.                          {
  244.                                  //toRead();
  245.                                  toInsertDataGridView1();
  246.                          }
  247.         private: System::Void esciToolStripMenuItem_Click(System::Object^  sender, System::EventArgs^  e)
  248.                          {
  249.                                  exit(0);
  250.                          }
  251. };
  252. }


Questo e' il codice che ho scritto fino ad adesso...come potete vedere non inserisce "titolo" nella prima colonna della prima riga... (array<String^>^riga0 = {titolo,"01/01/2009","01/01/2010"};)
Come devo fare per prendere il testo da un txt ed inserirlo dentro i rispettivi campi del dataGridView?
tnx

PM Quote
Avatar
()
Newbie


Messaggi:
Iscritto:

Segnala al moderatore
Postato alle 17:03
Sabato, 19/12/2009
io so che per aprire un file .txt serve la libreria "fstream" che si include cosi
#include <fstream>.
per aprire il file devi fare cosi:
crei un file di strem che chiami come vuoi tu, ad esempio File1, lo dichiari cosi
Codice sorgente - presumibilmente Plain Text

  1. (fstream File1;) senza parentesi tonde, come una qualsiasi altra dichiarazione.


poi devi aprire il file .txt che vuoi tu cosi:
Codice sorgente - presumibilmente Plain Text

  1. File1.open("file.txt", ios::out);


dopo che lo utilizzi chiudi il file .txt cosi:
Codice sorgente - presumibilmente Plain Text

  1. File1.close();


PM Quote
Avatar
cimo (Normal User)
Newbie


Messaggi: 18
Iscritto: 19/12/2009

Segnala al moderatore
Postato alle 17:34
Sabato, 19/12/2009
Ehm si so come si apre e ho fatto varie prove un po' si blocca il programma altre nn legge proprio e appunto cercavo come fare per leggere il file e inserire i valori che mi servono nella gridView

PM Quote
Avatar
Lawliet (Normal User)
Expert


Messaggi: 386
Iscritto: 09/04/2009

Segnala al moderatore
Postato alle 17:45
Sabato, 19/12/2009
Codice sorgente - presumibilmente C++

  1. #include "stdlib.h"
  2. #include "iostream"
  3. #include "fstream"
  4. #include "string"


Piccolo appunto da farti notare, le header del C++
bisogna includerli così:

Codice sorgente - presumibilmente C++

  1. #include <stdlib.h>
  2. #include <iostream>
  3. #include <fstream>
  4. #include <string>



Per i doppi apici esempio #include "libreria.h", è da utilizzare per includere header di librerie personalizzati!


"Dai un pesce (programma) a un uomo e lo nutrirai per un giorno. Insegnagli a pescare (programmare) e lo nutrirai per tutta la vita." (niente pappa pronta)
cit. theprogrammer
PM Quote
Avatar
cimo (Normal User)
Newbie


Messaggi: 18
Iscritto: 19/12/2009

Segnala al moderatore
Postato alle 19:05
Sabato, 19/12/2009
e come mai mi hanno sempre funzionato in questo modo? -> " "
(chiedo per capire la differenza)
Cmq la soluzione al mio problema nn si sa? dai raga sto' uscendo pazzo pls
Codice sorgente - presumibilmente C/C++

  1. char *orig = "Hello, World!";
  2. //string orig = "Hello, World!";
  3.                        
  4. String ^systemstring = gcnew String(orig);
  5. //String ^systemstring = gcnew String(orig.c_str());
  6. systemstring;
  7.  
  8. array<String^>^riga0 = {systemstring,"01/01/2009","01/01/2010"};


Sto' provando a convertire da char o stringa ma ancora nn sono riuscito a farli leggere da file...
plese help

PM Quote
Avatar
cimo (Normal User)
Newbie


Messaggi: 18
Iscritto: 19/12/2009

Segnala al moderatore
Postato alle 11:36
Domenica, 20/12/2009
Dai raga nessuno sa' come fare?

PM Quote
Avatar
HeDo (Founder Member)
Guru^2


Messaggi: 2763
Iscritto: 21/09/2007

Segnala al moderatore
Postato alle 14:01
Domenica, 20/12/2009
Testo quotato

Postato originariamente da cimo:

Dai raga nessuno sa' come fare?



no, qui nessuno sa come fare perchè è la sezione C++, non Visual C++ .NET :P

vai a chiedere nella sezione .NET .

Oltretutto il problema, anche se non l'ho guardato, sembra molto semplice.

le righe di un file di testo si leggono con File.ReadAllLines, si splittano i campi con String.Split e per inserire i "campi" nel datagrid passi per il dataset associato, e in particolare usando un datarow.


Ultima modifica effettuata da HeDo il 20/12/2009 alle 14:04


Ingegnere Informatico
https://ldlagency.it
PM Quote
Avatar
cimo (Normal User)
Newbie


Messaggi: 18
Iscritto: 19/12/2009

Segnala al moderatore
Postato alle 21:45
Domenica, 20/12/2009
Risolto mettendo l'assegnazione dei campi della tabella nel while e splittando il testo con carattere speciale...solo che c'e' il problema del salvataggio adesso nn so' come prendere i dati da singola cella e risalvarli nel file....vedo di postare su visual net
tnx ciau!

PM Quote