Pagina 1 di 3 1 2 3 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 27

Discussione: Problema con C#

  1. #1

    Problema con C#

    Ciao a tutti ho questo problema:
    devo leggere da un file di testo che al suo interno contiene n righe e mi serve che il mio prg mi restituisca tutte quelle che iniziano con una determinata stringa, ora io ho fatto questo:

    StreamReader lgAirac = new StreamReader(data);

    string str = "";
    string rightLine = null;

    while (str != null)
    {
    string[] tmp = str.Split(' ');
    if (tmp[0].Equals("SID"))
    rightLine = str;
    str = lgAirac.ReadLine();
    }
    if (rightLine != null)
    {
    string[] tmp = rightLine.Split(' ');
    Airac toBeRet = new Airac();
    toBeRet.Sid = tmp[1];
    lgAirac.Close();

    return toBeRet;
    }
    else
    return null;

    ma mi restituisce solo la prima occorrenza e poi si ferma.
    Dove sbaglio ??
    Premetto che ho appena iniziato con C#
    Grazie
    Marco

  2. #2
    se non ho letto male il tuo codice così ben indentato hai messo un return dentro il ciclo while...
    al primo return esci dal metodo e ritorni i dati fin li elaborati.

  3. #3
    Ciao Max io volevo appunto sapere come posso fare a far leggere tutte le righe che iniziano con, in questo caso, "SID" e farmele poi visualizzare in una ListBox.

  4. #4
    Utente di HTML.it L'avatar di Stoicenko
    Registrato dal
    Feb 2004
    Messaggi
    2,254
    inseriscile in una lista di stringhe e ritornala poi al chiamante della funzione

    ps: leggiti il regolamento che il titolo non è corretto e il codice va postato tra tag CODE

  5. #5
    Ciao e scusami per il titolo.
    Come ti dicevo sono alle prime armi con C# mi potresti fare un piccolissimo esempio.
    Grazie
    Marco

  6. #6
    Utente di HTML.it L'avatar di Stoicenko
    Registrato dal
    Feb 2004
    Messaggi
    2,254
    guarda.. ti posterei un esempio ma tu devi postare la tua funzione in modo da poterla capire.. ci sono variabili che usi di cui non si sa il tipo ecc..

    cmq in generale una List<String> e il suo metodo add per aggiungere le reghe e al termine della funzione ritornala

  7. #7
    Originariamente inviato da Stoicenko
    ps: leggiti il regolamento che il titolo non è corretto e il codice va postato tra tag CODE
    per curiosità come mai tutti quelli che dicono di leggere il regolamento si dimenticano
    della parte in cui il regolamento stesso dice:

    Se possibile, non fate le veci dei moderatori: rischiate di ricevere brutte risposte con il rischio di scatenare litigi, discussioni difficili da gestire che potrebbero portare a provvedimenti anche nei vostri confronti; se notate una violazione del regolamento, segnalate il messaggio "incriminato" ad un moderatore usando l'apposita funzione oppure attraverso un messaggio privato (PVT).

  8. #8
    sono tutte variabili stringa

  9. #9
    Utente di HTML.it L'avatar di Stoicenko
    Registrato dal
    Feb 2004
    Messaggi
    2,254
    questa:
    codice:
    toBeRet.Sid = tmp[1];
    non mi sembra una stringa.. posta il codice completo sennò non andiamo lontano

  10. #10
    Ciao allora :
    namespace WindowsFormsApplication1
    {
    public class Airac
    {
    public string Sid { get; set; }
    public string Transition { get; set; }

    }
    }

    e questa è una poi c'è

    public class RecAirac
    {
    public static Airac RetriveAirac (string ICAO)
    {
    WebClient client = new WebClient();

    Stream data = null;

    try
    {
    data = client.OpenRead("Airport Data/LIMEairac.txt");
    //data = client.OpenRead("http://weather.noaa.gov/pub/data/observations/metar/stations/" + ICAO + ".TXT");
    }
    catch (Exception ex)
    {
    return null;
    }

    StreamReader lgAirac = new StreamReader(data);

    string str = "";
    string rightLine = null;

    while (str != null)
    {
    string[] tmp = str.Split(' ');
    if (tmp[0].Equals("SID"))
    rightLine = str;
    str = lgAirac.ReadLine();
    }
    if (rightLine != null)
    {
    string[] tmp = rightLine.Split(' ');
    Airac toBeRet = new Airac();
    toBeRet.Sid = tmp[1];
    lgAirac.Close();

    return toBeRet;
    }
    else
    return null;

    }
    }

    ecco è tutto
    grazie
    Marco

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.