Ciao!
Come premessa , vorrei informare che le mie conoscenze del linguaggio C sharp sono
minime , quindi nell'affrontare il problema risolto dal programma , ho adottato un approccio
stile linguaggio C usando array di char , e evitanto di usare metodi per le stringhe.
Do una breve descrizione del problema che il programma dovrebbe risolvere per pura
eventuale curiosità di qualche utente.
in un file di testo sono presenti delle variabili il cui nome comincia sempre con # e seguito
da un numero che indica la variabile ad esempio #100 variabile 100 .
il programma deve individuare e stampare le variabili che sono presenti nel testo.
Esempio testo :
x#100f100g1#300
Esempio Output :
#100
#300
PROBLEMA EFFETTIVAMENTE RISCONTRATO
usando array di char ho necessità di convertirli in string
ho provato diversi modi tra cui.
array.ToString();
Convert.ToString(array);
String stringa = new String(array);
nessuno sembra funzionare correttamente per qualche motivo.
il programma funziona ,perche stampando carattere per carattere l'array di char l'output è
corretto
Allego il sorgente
codice:using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Windows.Forms; using System.IO; namespace Controllo_presenza_variabili_Fanuc { public partial class Form1 : Form { public string buffer; public Form1() { InitializeComponent(); } private void Apri_file_Click(object sender, EventArgs e) { /* leggo il file e inserisco tutto * il contenuto in una variabile "globale" buffer * * alla fine richiamo la funzione trova */ openFileDialog1.ShowDialog(); string path= openFileDialog1.FileName; StreamReader leggi = new StreamReader(path); buffer = leggi.ReadToEnd(); leggi.Close(); Trova_variabili(); } private void Trova_variabili() { char[] array = new char[20]; // creo una array che conterrà carattere per carattere la variabile trovata char[] barray = new char[8000] ; //dichiaro un array di char che possa contenere tutti i caratteri del file barray= buffer.ToCharArray(); // trasformo buffer string in array char int i,j,l; for (i = 0; i<buffer.Length ; i++) { /*leggo l' array contenente il file carattere per * carattere , quando incontro il carattere # * ho trovato una variabile */ char carattere=barray[i]; if (carattere == '#') { for ( j =i, l=0; ; j++ , l++) { /*parto a scorrere l'array dal carattere # * fino a quando trovo carratteri diversi da un numero * e memorizzo in array */ if (barray[j] != '#') { if (Convert.ToInt16(barray[j]) < 48 || Convert.ToInt16(barray[j]) >57) break; array[l] = barray[j]; } } /* stampando carattere per carattere tutto ok ma per sviluppi del programma ho necessita di convertirlo in string come posso fare?? for (int d = 0; d < 20; d++) textBox1.Text = textBox1.Text + array[d]; textBox1.Text = textBox1.Text + "\r\n"; */ string stringa = new string(array); textBox1.Text = textBox1.Text + "#" + stringa + "\r\n"; } } } } }

Rispondi quotando