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.
6 svar · 257 visningar · startad av Mc Fetto
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?
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.
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?
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.
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!
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.
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 :)