webForumDet fria alternativet

filinfo till strukturerad info?

.NET

6 svar · 257 visningar · startad av Mc Fetto

Medlem sedan nov. 20022 355 inlägg
Frågan#1

Hehe, bästa jag kunde komma på, har ni ett bättre förslag så hojta till på titeln.

Till problemet: Jag håller på med en liten applikation som kontaktar en ftp-server och när detta sker tar jag hem all information från mappar och filer en sträng för för en mapp/fil info ser ut så här:

drwxr-xr-x   2 80       sys          2048 Jul 22 20:34 incoming

Jag vill ha ut infon från strängen, men det verkar lite bökigt då start/slutindex för de olika "varibalerna" är olika... finns det någon metod för att konvertera informationen till en mer struktuerad abstraktion?

Medlem sedan maj 20021 466 inlägg
#2

Inte vad jag känner till. Du får skapa din egen tolkningsfunktion. Skapa en sökfunktion som söker efter första tecknet som inte är ' '.

Du kan också använda en existerande FTP-klass.

Medlem sedan nov. 20022 355 inlägg
#3

Marcus E skrev:

Inte vad jag känner till. Du får skapa din egen tolkningsfunktion. Skapa en sökfunktion som söker efter första tecknet som inte är ' '.

Du kan också använda en existerande FTP-klass.

Tips på bra ftp-klass?

Medlem sedan apr. 20012 266 inlägg
#4

Regex kan annars vara lösningen, så länge det finns ett mönster fungerar regex utmärkt för att plocka ur data från varje rad.

Medlem sedan nov. 20022 355 inlägg
#5

renholm skrev:

Regex kan annars vara lösningen, så länge det finns ett mönster fungerar regex utmärkt för att plocka ur data från varje rad.

Japp, det är ju samma följd på informationen så det funkar nog. Får ta en titt på Regex!

Medlem sedan maj 20021 466 inlägg
#6

Det finns enkelt stöd i ramverket.

En mer avancerad klass kan du hitta på nätet. T.ex. på The Code Project. Jag har inte testat någon själv.
http://www.codeproject.com/dotnet/dotnetftp.asp

Problemet med Regex är att datan man får ibland kan vara väldigt konstigt formaterad. Jag vet inte om detta händer med FTP, men då det sker tycker jag att det enklare att skapa en egen tolkare än att använda Regex.

Medlem sedan nov. 20022 355 inlägg
#7

Blev en metod för att ta ut infon, den läggs i en vektor så man själv får konkatenera det man vill ha:

public string[] FormatRemoteFileInfo(string line)
{
    ArrayList attributes = new ArrayList();
    int start, end;
    for (int i=0;i<line.Length;i++)
    {
        if (line[i] != ' ') 
        {                    
            start = i;
            while (line.Length > i && line[i] != ' ')  
                i++;                            

            end=i;
            attributes.Add(line.Substring(start, end-start));                    
        }
    }
    string[] ret = ( (string[]) attributes.ToArray(typeof(string)));
    return ret;
}

Tittade på den länk du skickade Marcus E och använder nu den. Där får man ut informationen direkt. Tackar :)

265 ms totalt · 4 externa anrop · v20260731065814-full.a51de22e
130 ms — deklarationer (db)
0 ms — hämta statistik (cache)
133 ms — hämta tråd, inlägg och bilagor (db)
130 ms — ändringar (db)