Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Funstion/Befehl für Zeichenwiederholung | Herbers Excel-Forum

Forumthread: Funstion/Befehl für Zeichenwiederholung

Funstion/Befehl für Zeichenwiederholung
24.01.2010 16:16:28
Reinhard

Hallo Wissende,
ich hab es leider vergessen, wie heißt der Befehl um ein Zeichen zu wiederholen.
Meinstring=xyz("A",100)
oder
Meinstring=xyz(100,"A")
Gesucht ist "xyz".
Danke ^ Gruß
Reinhard

Anzeige

11
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Funstion/Befehl für Zeichenwiederholung
24.01.2010 16:29:59
Hajo_Zi
Hallo Reinhard,
=WIEDERHOLEN(45;3)

String(100, "A") oT.
24.01.2010 16:31:00
Tino
Jepp, das ist es, merci :-) o.w.T.
24.01.2010 16:37:33
Reinhard


Anzeige
Limitation bei Funktion String()
24.01.2010 17:03:02
Reinhard
hallo Interessierte,
zumindest bei Excel2000 liegt die Limitation bei 261.292.013
Sub Gross()
Dim Satz As String, N
Satz = String(261292013, "A")
Satz = ""
Satz = String(261292014, "A")
End Sub
Gruß
Reinhard
AW: wobei mich jetzt doch
24.01.2010 17:09:57
Daniel
der Anwendungsfall interssieren würde, wo diese Limitation ein Problem darstelt.
Gruß, Daniel
Anzeige
AW: wobei mich jetzt doch
24.01.2010 17:45:45
Reinhard
Hallo Daniel,
ich hatte die String-Funktion schon paarmal benutzt, mir fiel halt der Name nicht ein :-)
Der Hintergrund ist die Anfrage in einem anderen Forum, zwar ein Wordforum aber das ist für die dortige Frage wurscht.
Der Anfrager möchte per Word-Vba eine bis zu 2 GB große Txt-datei erstellen. An sich wollte er die mit wirren beliebigen Zeichenfolgen, ich sagte ihm das kann dann aber lange dauern bei 2 GB, daraufhin war er zögerlich auch mit nur einem Zeichen zufrieden.
Mein Plan war dann, mit dieser String-Funktion eine Variable zu füllen und diese über
Open "datei" for binary as #1
und der Put-Anweisung dann die Datei zu befüllen.
Leider klappt das nicht weil die Limitationen von String() und evtl. auch von Put zu klein sind.
Dieser Code:
Sub Gross()
Dim Satz As String
Satz = String(261292013, "A")
'MsgBox Len(Satz)
Close
Open "c:\test\gross.txt" For Binary As #1
Put #1, , Satz
Close
End Sub
bringt bei der Put-Zeile den Fehler 7. nicht genügend Speicher.
Ergo muß ich da anders vorgehen um eine 2 GB-datei zu erzeugen.
Okay, wird schon gehen die datei mit Open for Input öffnen und dann viele Säteze nacheinander reinschreiben mit Print, das müßte gehen, kann aber dauern.
Hast du bessere Ideen? Als her mit :-)
Gruß
Reinhard
Anzeige
AW: wobei mich jetzt doch
24.01.2010 18:06:22
Daniel
Hi
naja, die Limitation liegt in der String-Variable, die nur 262 Mio Zeichen fassen kann
wenn man riesen TXT-Dateien braucht, könnte man versuchen diese in der maximal möglichen Grösse zu erstellen und dann im Dateisystem zu kopieren und diese dann über das betriebssystem zusammenzufügen.
unter DOS gabs da doch die MERGE-Funktion.
Ansonsten müsste man sich halt mit einem geeigneten Editor behelfen, der diese Datenmengen verarbeiten kann.
gruß, Daniel
Anzeige
AW: wobei mich jetzt doch
24.01.2010 18:24:33
Reinhard
Hallo daniel,
gute Idee, zu Dos-Zeiten habe ich zwar nie merge benutzt, aber mit einfach Copy kann man auch Dateien zu einer vereinen.
Gruß
Reinhard
AW: wobei mich jetzt doch
24.01.2010 18:25:39
Tino
Hallo,
man kann auch ein Textfile Zeile für Zeile schreiben.
Dim A As Long, Satz$
Dim F%, lngTeiler&
lngTeiler = 261292013 / 10
F = FreeFile
Open "c:\test\gross.txt" For Append As #F
For A = 1 To 10
If A = 1 Then
Satz = String(lngTeiler, "A")
ElseIf A = 10 Then
Satz = ""
Satz = String(261292013 - 9 * lngTeiler, "A")
End If
Print #F, Satz
Next A
Close #F
Gruß Tino
Anzeige
Limitation liegt weniger an der Funktion
24.01.2010 18:06:40
Tino
Hallo,
ich denke die Limitation liegt weniger in der Funktion sondern am Speicher eines Strings.
Sonst müsste dies ja funktionieren.
Satz = String(130646007, "A") & String(130646007, "A")
Gruß Tino
AW: Limitation liegt weniger an der Funktion
24.01.2010 18:16:02
Reinhard
Hallo Tino,
ja, das kann/wird so sein.
Sub Gross2()
Dim Satz As String, N
Satz = String(261292013, "A")
'Satz = ""
Satz = String(261292013, "A")
End Sub
bringt Fehler 14, zuwenig Zeichenfolgenspeicher.
Gruß
Reinhard
Anzeige
;

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Entdecke mehr
Finde genau, was du suchst

Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden

Suche nach den besten Antworten
Unsere beliebtesten Threads

Entdecke unsere meistgeklickten Beiträge in der Google Suche

Top 100 Threads jetzt ansehen
Anzeige