|
|
Probleme mit char bzw. String |
|
turbobeeeni |

Forum-Newbie
|
 |
Beiträge: 7
|
 |
|
 |
Anmeldedatum: 11.05.09
|
 |
|
 |
Wohnort: Hannover
|
 |
|
 |
Version: 7.6.0 (R2008a)
|
 |
|
|
 |
|
Verfasst am: 30.11.2009, 16:57
Titel: Probleme mit char bzw. String
|
 |
|
 |
|
Hallo!
Ich habe ein interessantes Problem. Wenn ich Pfadnamen angebe, dann wird meine Ausgabe in das cell-Array geändert.
Hier mal ein Beispiel
DIRE=cell([1 5]);
DIRE(1)= {'W:\jdfhgjdfhaghfjkadhgkjfdhajkghjkfhjk\sdjagnjkagnjkbngjafjgbjadfgjkfbajgb\angjklnajgnfjkngf'};
DIRE(2)= {'W:\jdfhgjdfhaghfjkadhgkjfdhajkghjkfhjk\sdjagnjkagndfdbjadfgjkfbajgb\angjklnajgnfjkngf'};
DIRE(3)= {'W:\jdfhgjdfhaghfjkadhgkjfdhajkghjkfhjk\sdjagnjkagnxcvafjgbjadfgjkfbajgb\angjklnajgnfjkngf'};
DIRE(4)= {'W:\jdfhgjdfhaghfjkadhgkjfdhajkghjkfhjk\sdjagnjkagnjkbafjgvcgjkfbajgb\angjklnajgnfjkngf'};
DIRE(5)= {'W:\jdfhgjdfhaghfjkadhgkjfdhajkghjkfhjk\sdjagnjkagnvcjafjgbjadfgjkfbajgb\angjklnajgnfjkngf'};
DIR=cell([1 5]);
DIR(1)= {'W:\A'};
DIR(2)= {'W:\B'};
DIR(3)= {'W:\C'};
DIR(4)= {'W:\D'};
DIR(5)= {'W:\E'};
>> DIR
DIR =
'W:\A' 'W:\B' 'W:\C' 'W:\D' 'W:\E'
>> DIRE
DIRE =
[1x92 char] [1x85 char] [1x89 char] [1x86 char] [1x89 char]
>>
Ich würde gerne ein Skript durchlaufen lassen, dass in verschiedenen Ordnern auf einem Server Dinge auswertet. Dafür wäre es praktisch die Ordner in for-Schleifen durchzulaufen. Ich dachte, wenn ich das in Zellen speichern, dann kann ich einfach sowas in der Art machen:
for n=1:N
DIRECTORY = DIR(n);
...
end
um Dateien in den Ordnern einzulesen. Das klappt aber scheinbar nicht, weil die Ordnernamen so lang sind, dass keine Strings mehr gespeichert werden.
Mache ich aber
DIRECTORY='W:\jdfhgjdfhaghfjkadhgkjfdhajkghjkfhjk\sdjagnjkagnvcjafjg
bjadfgjkfbajgb\angjklnajgnfjkngf';
ist das überhaupt kein Problem (auf diese Weise kann ich aber nur einen Ordner auswerten)
Weiß irgendjemand weiter?
|
|
|
|
|
Jan* |

Forum-Century
|
 |
Beiträge: 178
|
 |
|
 |
Anmeldedatum: 06.11.09
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: R2007b
|
 |
|
|
 |
|
Verfasst am: 30.11.2009, 17:03
Titel:
|
 |
Wie greifst du denn auf DIRECTORY zu? Ich denke das Problem ist das Cell Array in DIRECTORY. Die Variable DIRECTORY liefert dir ein 1x1 Cell-Array zurück in dem der String steht. Wenn du als Rückgabewert direkt den String möchtest, musst du auf DIRECTORY(1) zugreifen. Evtl. hakt es hier?
|
|
|
Harald |

Forum-Meister
|
 |
Beiträge: 24.501
|
 |
|
 |
Anmeldedatum: 26.03.09
|
 |
|
 |
Wohnort: Nähe München
|
 |
|
 |
Version: ab 2017b
|
 |
|
|
 |
|
Verfasst am: 30.11.2009, 17:09
Titel:
|
 |
Hallo,
das Problem ist hier lediglich die Anzeige im Command Window; der Inhalt des Cell Arrays ist davon nicht betroffen. Die Anzeige
[1x92 char] [1x85 char] [1x89 char] [1x86 char] [1x89 char]
bedeutet, dass es eben Strings der jeweiligen Länge sind, die in diesen Feldern stehen.
Der Zugriff ist bei den langen Strings also genauso möglich wie bei den kurzen Strings.
Grüße,
Harald
|
|
|
turbobeeeni |
Themenstarter

Forum-Newbie
|
 |
Beiträge: 7
|
 |
|
 |
Anmeldedatum: 11.05.09
|
 |
|
 |
Wohnort: Hannover
|
 |
|
 |
Version: 7.6.0 (R2008a)
|
 |
|
|
 |
|
Verfasst am: 30.11.2009, 17:15
Titel:
|
 |
Schierig zu sagen, ich lasse ein Script namens 'regexpdir' drüber laufen, dass mir eine File-Liste der in diesem Ordner befindlichen Dateien zurückliefert. Das erwartet den DIRECTORY als String übergeben zu bekommen.
|
|
|
Jan* |

Forum-Century
|
 |
Beiträge: 178
|
 |
|
 |
Anmeldedatum: 06.11.09
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: R2007b
|
 |
|
|
 |
|
Verfasst am: 30.11.2009, 17:20
Titel:
|
 |
Ich vermute dass du 'regexpdir' keinen String, sondern das Cell-Array mit dem String übergibst. Du müsstest dann also anstelle von DIRECTORY, DIRECTORY(1) übergeben.
|
|
|
tompie |

Forum-Guru
|
 |
Beiträge: 260
|
 |
|
 |
Anmeldedatum: 19.09.07
|
 |
|
 |
Wohnort: München
|
 |
|
 |
Version: immer alles
|
 |
|
|
 |
|
Verfasst am: 30.11.2009, 18:47
Titel:
|
 |
Hallo,
wenn Du den String im cell array haben möchtest, musst Du mit DIR{1} zugreifen (also geschweifte Klammern) und nicht mit runden Klammern.
Vielleicht war's das schon?!
Gruß tompie
|
|
|
turbobeeeni |
Themenstarter

Forum-Newbie
|
 |
Beiträge: 7
|
 |
|
 |
Anmeldedatum: 11.05.09
|
 |
|
 |
Wohnort: Hannover
|
 |
|
 |
Version: 7.6.0 (R2008a)
|
 |
|
|
 |
|
Verfasst am: 01.12.2009, 16:20
Titel:
|
 |
Vielen Dank!
Ich glaube das hat mein Problem gelöst!
|
|
|
|
|
Einstellungen und Berechtigungen
|
|
Du kannst Beiträge in dieses Forum schreiben. Du kannst auf Beiträge in diesem Forum antworten. Du kannst deine Beiträge in diesem Forum nicht bearbeiten. Du kannst deine Beiträge in diesem Forum nicht löschen. Du kannst an Umfragen in diesem Forum nicht mitmachen. Du kannst Dateien in diesem Forum posten Du kannst Dateien in diesem Forum herunterladen
|
|
Impressum
| Nutzungsbedingungen
| Datenschutz
| FAQ
| RSS
Hosted by:
Copyright © 2007 - 2025
goMatlab.de | Dies ist keine offizielle Website der Firma The Mathworks
MATLAB, Simulink, Stateflow, Handle Graphics, Real-Time Workshop, SimBiology, SimHydraulics, SimEvents, and xPC TargetBox are registered trademarks and The MathWorks, the L-shaped membrane logo, and Embedded MATLAB are trademarks of The MathWorks, Inc.
|
|