Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 12
  1. #1
    Utente di HTML.it
    Registrato dal
    Jan 2016
    Messaggi
    11

    Help: devo leggere da un file il suo contenuto (testo) controllare se c'è una particolare stringa ed eventualmente cambiarla.

    Ciao a tutti vi espongo brevemente il mio problema.

    Ho diversi file con estensione .err contiene varie informazioni di testo tra cui come prima riga il path di un pdf.... , una cosa del genere :

    \\Documenti\ced$\Send\controll\nome.pdfDC04altro testo .... (path esatto).

    devo verificare se questo path è corretto, se non lo è, devo cambiarlo con quello corretto. Il path inizia con \\ e finisce con DC04 (, il nome del file pdf deve rimanere invariato perchè ovviamente per ogni .err il nome del file .pdf cambia.

    Parto da:

    DirectoryInfo dir = new DirectoryInfo(path do ho i file .err ma anche i file .pdf);
    FileInfo[] fileErr = dir.GetFiles("*.err");

  2. #2

  3. #3
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,480
    La spiegazione è contorta ma, in generale, se le linee di ogni file non sono molte, puoi usare la ReadAllLines, modifica del contenuto e WriteAllLines.
    No MP tecnici (non rispondo nemmeno!), usa il forum.

  4. #4
    Utente di HTML.it
    Registrato dal
    Jan 2016
    Messaggi
    11
    scusate per la spiegazione poco chiara .....

    Allora,

    Ho un file .ini che ha molte righe di testo, ma come prima riga ha questa :

    \\file\send\file1.pdf;\\file\send\file2.pdf;\\file\s end\file3.pdf;\\file\send\file4.pdf;DC4

    Devo gestire questo tipo di errori:

    \\errore\errore\file1.pdf;\\errore\errore\file2.pd f;\\errore\errore\file3.pdf;\\errore\errore\file4. pdf;DC4

    sostituendo il path corretto (\\file\send\) con quello in errore mantenendo invariati i nomi dei file .pdf

  5. #5
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,480
    Quindi, hai letto cosa ho scritto? Nessun commento?
    No MP tecnici (non rispondo nemmeno!), usa il forum.

  6. #6
    Utente di HTML.it
    Registrato dal
    Jan 2016
    Messaggi
    11
    ciao, si allora ai metodi da utilizzare ci ero arrivato anch'io, stavo riflettendo su quale fosse la strada corretta da percorrere.

    1. leggere il contenuto del file, e selezionare solo questa stringa che inizia com \\ e finisce con DC4 :

    \\file\send\file1.pdf;\\file\send\file2.pdf;\\file \send\file3.pdf;\\file\send\file4.pdf;DC4

    2. poi devo popolare un array in questo modo, con delle substring che iniziano con \\ e finiscono con ;

    \\errore\errore\file1.pdf
    \\errore\errore\file2.pdf
    \\errore\errore\file3.pdf
    \\errore\errore\file4.pdf

    3. per ogni stringa devo controllare se il path
    \\errore\send\ è corretto e se non lo è cambiarlo con \\file\send\file1.pdf

  7. #7

  8. #8
    Utente di HTML.it
    Registrato dal
    Jan 2016
    Messaggi
    11
    Guarda la faccio ancora più semplice, vi chiedo la cortesia di suggerirmi come:

    1. Data una stringa s = "//abcderfgiDC4gtredfrtgff" voglio che diventi così s = "//abcderfgiDC4" cioè selezionare una substring che inizia con "//" e finisce con "DC4"

    2. data una stringa ad esempio s = "//abc;//cde;//efg;" voglio dividerla in un array di sotto stringhe con "//" e ";" i caratteri che delimitano le sottostringhe.

    s[0] = //abc;
    s[1] = //cde;
    s[2] = //efg;

  9. #9
    Utente di HTML.it
    Registrato dal
    Jun 2012
    Messaggi
    106
    non ho ben capito il tuo scopo ma con split indexof e substring puoi fare quello che vuoi sulle stringhe

    https://msdn.microsoft.com/it-it/lib...v=vs.110).aspx
    https://msdn.microsoft.com/it-it/lib...(v=vs.90).aspx

  10. #10
    Utente di HTML.it
    Registrato dal
    Jan 2016
    Messaggi
    11
    grazie per le dritte ... posto la soluzione del mio problema..

    public static void ControlloPath (string path) {

    string pathCorrect = @"path";
    string pathJoin;
    int controllo = 0;
    StreamReader r = new StreamReader(path);
    string line = r.ReadLine();
    r.Close();

    if (line.Contains("valore") && line.Contains("valore")) {

    line = line.Substring(line.IndexOf("valore"), line.LastIndexOf("valore"));
    string[] elenco = line.Split(';');

    for (int i = 0; (i <= elenco.Length - 1 & elenco[i] != ""); i++) {

    string c = elenco[i].Substring(0, elenco[i].LastIndexOf("\\")); // stringa path senza nome del pdf

    if (String.Compare(pathCorrect, c) != 0) {

    controllo = controllo + 1;
    elenco[i] = (elenco[i].Replace(c, pathCorrect));

    }
    }

    if (controllo != 0) {
    pathJoin = String.Join(";", elenco); // path corretto. da sostituire nel file.

    File.WriteAllText(path, File.ReadAllText(path).Replace(line, pathJoin));
    }

    }

    }

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.