Autor |
Beitrag |
Bennle
      
Beiträge: 101
WinXP
Delphi 2007 Pro, C# (VS 2005)
|
Verfasst: Fr 11.11.05 16:28
Hallo,
Ich habe einen String welcher weit aus über 255 Zeichen besitzen muss. Allerdings wird dieser dann nie ausgegeben.
Wie kann ich einen langen String herstellen und diesen dann noch der MsSQL übergeben?
MfG
Bennle
Zuletzt bearbeitet von Bennle am Fr 11.11.05 20:22, insgesamt 1-mal bearbeitet
|
|
Blackheart666
      
Beiträge: 2195
XP
D3Prof, D6Pers.
|
Verfasst: Fr 11.11.05 16:32
'String255'+'String255'+'usw'
|
|
Bennle 
      
Beiträge: 101
WinXP
Delphi 2007 Pro, C# (VS 2005)
|
Verfasst: Fr 11.11.05 16:37
Blackheart666 hat folgendes geschrieben: | 'String255'+'String255'+'usw' |
Hallo,
Gibt es auch eine andere Möglichkeit?
MfG
Bennle
|
|
noidic
      
Beiträge: 851
Win 2000 Win XP Vista
D7 Ent, SharpDevelop 2.2
|
Verfasst: Fr 11.11.05 16:39
Wer beschränkt denn die Länge des Strings auf 255 Zeichen?
_________________ Bravery calls my name in the sound of the wind in the night...
|
|
Bennle 
      
Beiträge: 101
WinXP
Delphi 2007 Pro, C# (VS 2005)
|
Verfasst: Fr 11.11.05 16:49
noidic hat folgendes geschrieben: | Wer beschränkt denn die Länge des Strings auf 255 Zeichen? |
Hmm das ist eine gute Frage!
Ich hole mir den Text folgendermasen:
beschreibung := Memo.Lines.Text;
MfG
Bennle
|
|
ripper8472
      
Beiträge: 114
Win2k (und wenn ich nen Zweitrechner haette, auch eine Linux Distri)
|
Verfasst: Fr 11.11.05 16:49
ansistrings (was es in delphi gibt) koennen 2 oder 4 gigs fassen (je nach intelligenz der implementierung, ist mir echt egal) und sind nullterminiert.
alte pascal strings mit nem laengen byte an der ersten stelle koennen nur 255 byte fassen und sind nicht nullterminiert.
in mysql gibts varchars, die (glaub ich mal) 255 zeichen beschraenkung haben (koennten).
probier mal "text".
_________________ char l[]="\xd6N\x96\xa6\xe6\xce.\xa6\xe4\xce\x04N\x86\xae\xce\xfc",I,*i=l-1;for(;I=3,*
i++;){while(*i=*i&~(1<<I|1<<7-I)|(*i&1<<I)<<7-2*I|(*i&1<<7-I)>>7-2*I,I--);}puts(l);
|
|
Grendel
      
Beiträge: 443
Gentoo Linux, MacOS X, Win 2000
D5 Ent, D7 Ent, Lazarus, Anjuta, MonoDevelop
|
Verfasst: Fr 11.11.05 16:52
Normalerweise sind nur String-Konstanten auf 255 Zeichen beschränkt. "Normale" Strings sind eigentliche nur vom verfügbaren Speicher begrenzt. Es sei denn Du compilierst ohne die Option "Huge-Strings" dann werden Strings nämlich als ShortString behandelt und können somit nur 255 zeichen aufnehmen.
Guck mal unter Projekt -> Optionen -> Compiler -> Syntaxoptionen ob bei "Huge-Strings" ein Haken gesetzt ist.
Bis neulich ...
|
|
Bennle 
      
Beiträge: 101
WinXP
Delphi 2007 Pro, C# (VS 2005)
|
Verfasst: Fr 11.11.05 17:02
Hallo,
"Huge-Strings" sind ein!
Aber wie genau verwende ich ansistrings?
MfG
Bennle
|
|
ripper8472
      
Beiträge: 114
Win2k (und wenn ich nen Zweitrechner haette, auch eine Linux Distri)
|
Verfasst: Fr 11.11.05 17:04
ansistrings nennen sich die "delphistrings" mit dem komischen "fucked" format.
_________________ char l[]="\xd6N\x96\xa6\xe6\xce.\xa6\xe4\xce\x04N\x86\xae\xce\xfc",I,*i=l-1;for(;I=3,*
i++;){while(*i=*i&~(1<<I|1<<7-I)|(*i&1<<I)<<7-2*I|(*i&1<<7-I)>>7-2*I,I--);}puts(l);
|
|
Stefan.Buchholtz
      
Beiträge: 612
WIN 2000, WIN XP, Mac OS X
D7 Enterprise, XCode, Eclipse, Ruby On Rails
|
Verfasst: Fr 11.11.05 17:05
Wenn Huge-Strings eingeschaltet ist, sind String-Variablen ohne Längenangabe, also
Delphi-Quelltext
automatisch Ansi-Strings.
Stefan
|
|
Bennle 
      
Beiträge: 101
WinXP
Delphi 2007 Pro, C# (VS 2005)
|
Verfasst: Fr 11.11.05 17:08
Stefan.Buchholtz hat folgendes geschrieben: | Wenn Huge-Strings eingeschaltet ist, sind String-Variablen ohne Längenangabe, also
Delphi-Quelltext
automatisch Ansi-Strings.
Stefan |
Hmm, dann verstehe ich aber nicht warum das nicht funktioniert?
Biss 255 Zeichen geht es gut, aber wenn es mehr ist klappt es nicht!
An MsSQL kann es nicht liegen, da ich ein Memo verwendet habe!
MfG
Bennle
|
|
noidic
      
Beiträge: 851
Win 2000 Win XP Vista
D7 Ent, SharpDevelop 2.2
|
Verfasst: Fr 11.11.05 17:10
Poste doch mal den entsprechenden Code, vielleicht hilft das weiter.
_________________ Bravery calls my name in the sound of the wind in the night...
|
|
Bennle 
      
Beiträge: 101
WinXP
Delphi 2007 Pro, C# (VS 2005)
|
Verfasst: Fr 11.11.05 17:19
noidic hat folgendes geschrieben: | Poste doch mal den entsprechenden Code, vielleicht hilft das weiter. |
Delphi-Quelltext 1: 2:
| beschreibung := Memo.Lines.Text; WebBrowser1.Navigate('about:'+Abeschreibung); |
mehr soll er mal nicht machen, das geht auch schon nich
MfG
Bennle
Moderiert von Christian S.: Delphi-Tags hinzugefügt
|
|
noidic
      
Beiträge: 851
Win 2000 Win XP Vista
D7 Ent, SharpDevelop 2.2
|
Verfasst: Fr 11.11.05 17:23
Was is nu wieder Abeschreibung? Wenns kein Tippfehler ist, kommt das Navigate evtl. nicht mit mehr als 255 Zeichen klar? Wobei ja in der Hilfe steht, es wäre ein WideString...
In den zwei Zeilen sehe ich ( Tippfehler vorrausgesetzt ) so keinen Fehler.
_________________ Bravery calls my name in the sound of the wind in the night...
|
|
Bennle 
      
Beiträge: 101
WinXP
Delphi 2007 Pro, C# (VS 2005)
|
Verfasst: Fr 11.11.05 17:28
noidic hat folgendes geschrieben: | Was is nu wieder Abeschreibung? Wenns kein Tippfehler ist, kommt das Navigate evtl. nicht mit mehr als 255 Zeichen klar? Wobei ja in der Hilfe steht, es wäre ein WideString...
In den zwei Zeilen sehe ich ( Tippfehler vorrausgesetzt ) so keinen Fehler. |
ja das ist ein Tippfehler gewesen, aber es ist immer noch das selbe Problem! Ich habe es nur hier falsch gepostet, in meinem Programm war es richtig
Aber wie gesagt wenn ich in dem Memo mehr als 255 Zeichen eingebe funktioniert das nich
|
|
Blackheart666
      
Beiträge: 2195
XP
D3Prof, D6Pers.
|
Verfasst: Fr 11.11.05 17:40
Was bezweckst Du damit, der String ist doch bestimmt keine Internet adresse vieleicht könnte man das auch anders lösen.
|
|
Bennle 
      
Beiträge: 101
WinXP
Delphi 2007 Pro, C# (VS 2005)
|
Verfasst: Fr 11.11.05 17:50
Blackheart666 hat folgendes geschrieben: | Was bezweckst Du damit, der String ist doch bestimmt keine Internet adresse vieleicht könnte man das auch anders lösen. |
Hmm gut das ist mir klar das es keine ist! Es ist nur zur vorschau, aber darauf kommt es momentan auch nicht an! Ich will das ja genauso gut in die Datebank bekommen.
Ich habe den Text mal fest eingebaut dann kommt:
[Fehler] Unit1.pas(843): String-Literale können maximal 255 Elemente besitzen
MfG
Bennle
|
|
ripper8472
      
Beiträge: 114
Win2k (und wenn ich nen Zweitrechner haette, auch eine Linux Distri)
|
Verfasst: Fr 11.11.05 17:53
der IE kommt nicht mit so langen queries zurecht, wuerd ich mal mutmassen.
immerhin wird der IE im twebbrowser gekapselt...
_________________ char l[]="\xd6N\x96\xa6\xe6\xce.\xa6\xe4\xce\x04N\x86\xae\xce\xfc",I,*i=l-1;for(;I=3,*
i++;){while(*i=*i&~(1<<I|1<<7-I)|(*i&1<<I)<<7-2*I|(*i&1<<7-I)>>7-2*I,I--);}puts(l);
|
|
noidic
      
Beiträge: 851
Win 2000 Win XP Vista
D7 Ent, SharpDevelop 2.2
|
Verfasst: Fr 11.11.05 17:57
String-Literale ( also 'feste Strings' ) können tatsächlich nur 255 Zeichen haben.
Versuch doch mal testweise, den String in ein zweites TMemo zu schreiben und schau, was dann passiert.
_________________ Bravery calls my name in the sound of the wind in the night...
|
|
retnyg
      
Beiträge: 2754
SNES, GB, GBA, CPC, A500, 486/66, P4/3.0HT: NintendOS, AmigaOS, DoS
Delphi 5, Delphi 7
|
Verfasst: Fr 11.11.05 17:57
anstatt dem about: trick mach doch lieber folgendes
www.delphipraxis.net...ewtopic.php?p=453665
_________________ es gibt leute, die sind genetisch nicht zum programmieren geschaffen.
in der regel haben diese leute die regel...
|
|