Hot News:

Unser Angebot:

  Foren auf CAD.de
  VBasic / vb.net / vbs / wsh
  len funktion as integer?

Antwort erstellen  Neues Thema erstellen
CAD.de Login | Logout | Profil | Profil bearbeiten | Registrieren | Voreinstellungen | Hilfe | Suchen

Anzeige:

Darstellung des Themas zum Ausdrucken. Bitte dann die Druckfunktion des Browsers verwenden. | Suche nach Beiträgen nächster neuer Beitrag | nächster älterer Beitrag
  
Online-Kurs: Grundlagen des 3D-Druck-Designs für Industrieingenieure , ein Kurs
Autor Thema:  len funktion as integer? (590 mal gelesen)
jo_steph
Mitglied
Student


Sehen Sie sich das Profil von jo_steph an!   Senden Sie eine Private Message an jo_steph  Schreiben Sie einen Gästebucheintrag für jo_steph

Beiträge: 35
Registriert: 26.09.2005

erstellt am: 07. Feb. 2006 12:32    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities

Hallo Alle,

wenn ich Len-Funktion benutze, warum bekomme ich maximal 65535 als Ergebnis?
Wenn der Text mehr als 65535 Zeichnen enthält, wie kann ich die Länge des Textes messen?

ich habe probtiert mit diesem Satzbefehl, aber funktioniert auch nicht, ich bekomme noch nlen = 65535 als Ergebnis.

dim nlen as long
nlen = len(text)


Vielen Dank für die Antwort.

Grüße.

Johan

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

Nepumuk
Mitglied
Entwicklungsleiter


Sehen Sie sich das Profil von Nepumuk an!   Senden Sie eine Private Message an Nepumuk  Schreiben Sie einen Gästebucheintrag für Nepumuk

Beiträge: 351
Registriert: 16.10.2004

erstellt am: 07. Feb. 2006 12:44    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities Nur für jo_steph 10 Unities + Antwort hilfreich

Hallo Johan,

das ist nicht nachvollziehbar. Bei mir wird der richtige Wert zurückgegeben.

Public Sub test()
    Dim x As String
    x = String(123456789, "x")
    Debug.Print Len(x)
End Sub

------------------
Gruß
Nepumuk

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

startrek
Mitglied
Architekt


Sehen Sie sich das Profil von startrek an!   Senden Sie eine Private Message an startrek  Schreiben Sie einen Gästebucheintrag für startrek

Beiträge: 1361
Registriert: 13.02.2003

.

erstellt am: 07. Feb. 2006 12:45    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities Nur für jo_steph 10 Unities + Antwort hilfreich

Hi Johan,

was ist bzw. wo kommt 'text' her?
Denn eigentlich geht zumindest das bei mir:

Code:

?len(string(100000,"0"))
100000
?typename(len(string(100000,"0")))
Long

Gruss Nancy

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

Arne Peters
Ehrenmitglied V.I.P. h.c.
CAD Dokumentation / Training / Programmierung / Datenbanken


Sehen Sie sich das Profil von Arne Peters an!   Senden Sie eine Private Message an Arne Peters  Schreiben Sie einen Gästebucheintrag für Arne Peters

Beiträge: 7545
Registriert: 05.2002.24

erstellt am: 07. Feb. 2006 12:59    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities Nur für jo_steph 10 Unities + Antwort hilfreich

Korrektur: Ich lag leider falsch.

Laut Hilfe ist eine Variable
DIM x as string
eine Variable mit variabler Länge.


------------------
APeters@BSS-Online.de

[Diese Nachricht wurde von Arne Peters am 07. Feb. 2006 editiert.]

[Diese Nachricht wurde von Arne Peters am 07. Feb. 2006 editiert.]

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

jo_steph
Mitglied
Student


Sehen Sie sich das Profil von jo_steph an!   Senden Sie eine Private Message an jo_steph  Schreiben Sie einen Gästebucheintrag für jo_steph

Beiträge: 35
Registriert: 26.09.2005

erstellt am: 07. Feb. 2006 13:07    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities

Hallo Nepumuk, hallo Nancy,

zuerst danke für eure Antwort. Ich habe gerade das Problem gefunden, und zwar bei dem Text.
Ich habe den Text als String deklariert, und habe bemerkt, dass diese String Datentyp nur 65535 Zeichen enthält.
Das heißt, der TExt wird mit 65535 Zeichen begrenzt. Wenn der TExt mehr als 65355 Zeichen enthält, werden die reste Zeichen einfach nicht in der Variable Text eingefügt.

Wie kann man diese String DAtentyp als variable Länge (bis ca. 2 Milliarden) deklariert?

Grüße.

Johan

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

jo_steph
Mitglied
Student


Sehen Sie sich das Profil von jo_steph an!   Senden Sie eine Private Message an jo_steph  Schreiben Sie einen Gästebucheintrag für jo_steph

Beiträge: 35
Registriert: 26.09.2005

erstellt am: 07. Feb. 2006 13:28    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities

das ist aber komisch, denn ich habe die Variablen als string deklariert.

Dim Text as string

Aber trotzdem werden die Variablen mit 65535 Zeichen begrenzt.

Wo liegt das Problem?

   

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

Arne Peters
Ehrenmitglied V.I.P. h.c.
CAD Dokumentation / Training / Programmierung / Datenbanken


Sehen Sie sich das Profil von Arne Peters an!   Senden Sie eine Private Message an Arne Peters  Schreiben Sie einen Gästebucheintrag für Arne Peters

Beiträge: 7545
Registriert: 05.2002.24

Solid Edge Seminarunterlagen
Training, Beratung, Programmierung

erstellt am: 07. Feb. 2006 13:35    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities Nur für jo_steph 10 Unities + Antwort hilfreich

Lass doch mal den Typ weg und mach nur ein
Dim Text

Vielleicht geht das. 

------------------
APeters@BSS-Online.de

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

Nepumuk
Mitglied
Entwicklungsleiter


Sehen Sie sich das Profil von Nepumuk an!   Senden Sie eine Private Message an Nepumuk  Schreiben Sie einen Gästebucheintrag für Nepumuk

Beiträge: 351
Registriert: 16.10.2004

erstellt am: 07. Feb. 2006 13:39    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities Nur für jo_steph 10 Unities + Antwort hilfreich

Hallo Johan,

Strings fester länge können ~ 2^16 Zeichen aufnehmen. Strings variabler Länge ~ 2^31 Zeichen. Der Unterschied bei der deklaration:

Public Sub test()
    Dim strTest1 As String * 65526  ' feste Länge
    Dim strTest2 As String              ' variable Länge
End Sub

Was Peter schreibt, ist nicht richtig. Wenn du bei der deklaration den Datentyp nicht angibst, wird ein Variant angelegt. Der benötigt erstens mal wesentlich mehr Speicher und kann auch nicht mehr Zeichen aufnehmen.

------------------
Gruß
Nepumuk

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

jo_steph
Mitglied
Student


Sehen Sie sich das Profil von jo_steph an!   Senden Sie eine Private Message an jo_steph  Schreiben Sie einen Gästebucheintrag für jo_steph

Beiträge: 35
Registriert: 26.09.2005

erstellt am: 07. Feb. 2006 13:58    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities

Hallo Alle,

nochmal vielen Dank für eure Antworten.
Das Problem liegt nicht an der Variable oder Len-Funktion.
Ich habe die Ursache des Problems gefunden, und zwar wie folgende:

ich habe eine Datei geöffnet, und habe die in einem Textbox eingefügt. Danach gebe ich den Inhalt dieses Textboxes in Variable Text ein.

Die Lösung ist: ich habe einfach die Reihenfolge geändert, zuerst die Datei in der Variable Text gespeichert, und dann der Inhalt der Variable in den TExtbox eingefügt.

Dann habe ich gefunden, dass der Inhalt eines TExtboxes mit 65535 Zeichen begrenzt wird.
Warum ist es so? ich weiß es leider nicht.

Grüße.

Johan

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

startrek
Mitglied
Architekt


Sehen Sie sich das Profil von startrek an!   Senden Sie eine Private Message an startrek  Schreiben Sie einen Gästebucheintrag für startrek

Beiträge: 1361
Registriert: 13.02.2003

.

erstellt am: 07. Feb. 2006 14:10    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities Nur für jo_steph 10 Unities + Antwort hilfreich

Hi Johan,

also irgendwann ist da auch Sense bei mir, aber der String wird dann nicht belegt:

Code:

Public Sub test()
    Dim x As String
    'On Error Resume Next
    'Nicht genügend Zeichenfolgenspeicher (Fehler 14)
    x = String(999999999, "x")
    Debug.Print Len(x), LenB(x) '0  0
End Sub

Kann es sein, dass deine textvariable einfach einen 'abgeschnittenen' Text bekommt, da das Object? nicht mehr Zeichen fassen/darstellen kann?
Ist zB in Acad beim MText mitunter so, deswegen die Frage, woher kommt 'text'?

[edit]hach, bin ich heute wieder schnell ...,
hmm, okay ..., vielleicht gehen ja mit ner RichTextBox mehr zeichen?[/edit]

Gruss Nancy

[Diese Nachricht wurde von startrek am 07. Feb. 2006 editiert.]

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

jo_steph
Mitglied
Student


Sehen Sie sich das Profil von jo_steph an!   Senden Sie eine Private Message an jo_steph  Schreiben Sie einen Gästebucheintrag für jo_steph

Beiträge: 35
Registriert: 26.09.2005

erstellt am: 07. Feb. 2006 14:36    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities

Hi Nancy,

ich habe gerade probiert, die Datei mit einem RichTextBox zu zeigen, und es hat geklappt!! Der Inhalt der Datei wird nicht abgeschnitten, wie in TExtbox.

Danke für den Tipp.

Gruß.

Johan

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

Anzeige.:

Anzeige: (Infos zum Werbeplatz >>)

Darstellung des Themas zum Ausdrucken. Bitte dann die Druckfunktion des Browsers verwenden. | Suche nach Beiträgen

nächster neuerer Beitrag | nächster älterer Beitrag
Antwort erstellen


Diesen Beitrag mit Lesezeichen versehen ... | Nach anderen Beiträgen suchen | CAD.de-Newsletter

Administrative Optionen: Beitrag schliessen | Archivieren/Bewegen | Beitrag melden!

Fragen und Anregungen: Kritik-Forum | Neues aus der Community: Community-Forum

(c)2025 CAD.de | Impressum | Datenschutz