AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Kann Delphi jetzt kein s[1] mehr?

Ein Thema von derpepe · begonnen am 27. Mär 2005 · letzter Beitrag vom 28. Mär 2005
Antwort Antwort
Seite 1 von 4  1 23     Letzte »    
Benutzerbild von derpepe
derpepe

Registriert seit: 16. Mär 2005
Ort: Dotternhausen
164 Beiträge
 
Delphi 2005 Personal
 
#1

Kann Delphi jetzt kein s[1] mehr?

  Alt 27. Mär 2005, 23:16
Geht nicht

Die Funktion soll die Leerzeichen am Anfang eines Strings zählen.
Warum geht das so nicht? Ist Delphi jetzt doof? Oder ich? Sonst ging das doch immer so??

Delphi-Quellcode:
  function countspacesinfront(s:string):integer;
  var
    z:integer;
    sx:string;
  begin
    sx:=s;
    z:=0;
    while sx[1]=' do begin
      sx:=copy(sx,2,length(sx)-1);
      inc(z);
    end;
    countspacesinfront:=z;
  end;
Peter J. Schneider
http://raketenwerfer.de/programmieren/delphi/index.html
Nes dar in da kev, sed un est a log!
  Mit Zitat antworten Zitat
ReDoX
(Gast)

n/a Beiträge
 
#2

Re: Kann Delphi jetzt kein s[1] mehr?

  Alt 27. Mär 2005, 23:19
hi,
was geht da nicht?
Muesste das nicht
 result := z; anstatt
 countspacesinfront:=z; heißen?

Mfg ReDoX
  Mit Zitat antworten Zitat
Torpedo

Registriert seit: 21. Dez 2003
410 Beiträge
 
#3

Re: Kann Delphi jetzt kein s[1] mehr?

  Alt 27. Mär 2005, 23:19
Bei mir funktionierts (Delphi 7 Personal)

@Redox: Kann man beides machen.
  Mit Zitat antworten Zitat
Benutzerbild von Matze
Matze
(Co-Admin)

Registriert seit: 7. Jul 2003
Ort: Schwabenländle
14.929 Beiträge
 
Turbo Delphi für Win32
 
#4

Re: Kann Delphi jetzt kein s[1] mehr?

  Alt 27. Mär 2005, 23:20
Geht bei mir ohne Probleme, was klappt denn nicht?
  Mit Zitat antworten Zitat
Benutzerbild von mr47
mr47

Registriert seit: 6. Dez 2004
Ort: Stuttgart
644 Beiträge
 
Delphi 2005 Personal
 
#5

Re: Kann Delphi jetzt kein s[1] mehr?

  Alt 27. Mär 2005, 23:21
Könntest du bitte "Geht nicht" etwas präzisieren...
  Mit Zitat antworten Zitat
Benutzerbild von derpepe
derpepe

Registriert seit: 16. Mär 2005
Ort: Dotternhausen
164 Beiträge
 
Delphi 2005 Personal
 
#6

Re: Kann Delphi jetzt kein s[1] mehr?

  Alt 27. Mär 2005, 23:24
Geht nicht soll heißen, dass das Teil bei mir immer 0 ausspuckt.
Wenn ich jetzt mit
showmessage(inttostr(countspacesinfront(einstring))); dat Ergebnis ausgeben lasse bekomm ich ne Access Violation...
Peter J. Schneider
http://raketenwerfer.de/programmieren/delphi/index.html
Nes dar in da kev, sed un est a log!
  Mit Zitat antworten Zitat
Benutzerbild von derpepe
derpepe

Registriert seit: 16. Mär 2005
Ort: Dotternhausen
164 Beiträge
 
Delphi 2005 Personal
 
#7

Re: Kann Delphi jetzt kein s[1] mehr?

  Alt 27. Mär 2005, 23:25
Die ganze Funktion lautet so
Delphi-Quellcode:
procedure THauptfenster.fuelleListe(liste:tstrings; identifier,name:string);
var
  temp:string;
  position,i:integer;

  function countspacesinfront(s:string):integer;
  var
    z:integer;
    sx:string;
  begin
    sx:=s;
    z:=0;
    while sx[1]=' do begin
      sx:=copy(sx,2,length(sx)-1);
      inc(z);
    end;
    countspacesinfront:=z;
  end;

begin
  liste.Clear;

  for i:=0 to scintilla1.Lines.Count-1 do begin
    temp:=Scintilla1.lines[i];
    temp:=cutby(temp);

    if lowercase(copy(temp,1,length(identifier)))<>lowercase(identifier) then continue;

    position:=scintilla1.positionfromline(i)+countspacesinfront(temp);
    if getattribut(position)=11 then
      liste.add(cutby(temp)) else
      liste.add(cutby(temp)+' ('+inttostr(position)+')');
  end;
end;
is a bisserl blöd weil das aus nem Projekt stammt.
Kurz zu den verwendeten Funktionen:
cutby schneidet einem String die vorderen und hinteren Leerzeichen ab und entfernt Kommentare
getattribut liest die Farbe im Quelltext aus

Der Rest dürfte klar sein...


Hab ich vielleicht bei den Compiler-Parametern einen Scheiß eingestellt?
Miniaturansicht angehängter Grafiken
compiler-einstellungen_176.jpg   av_534.jpg  
Peter J. Schneider
http://raketenwerfer.de/programmieren/delphi/index.html
Nes dar in da kev, sed un est a log!
  Mit Zitat antworten Zitat
Benutzerbild von Matze
Matze
(Co-Admin)

Registriert seit: 7. Jul 2003
Ort: Schwabenländle
14.929 Beiträge
 
Turbo Delphi für Win32
 
#8

Re: Kann Delphi jetzt kein s[1] mehr?

  Alt 27. Mär 2005, 23:29
Funktion in einer Prozedur, sowas mag ich gar nicht *g*

Teste mal die Funktion einzelnd, ob sie bei dir dann den erwünschten Effekt liefert.
  Mit Zitat antworten Zitat
Benutzerbild von derpepe
derpepe

Registriert seit: 16. Mär 2005
Ort: Dotternhausen
164 Beiträge
 
Delphi 2005 Personal
 
#9

Re: Kann Delphi jetzt kein s[1] mehr?

  Alt 27. Mär 2005, 23:33
Ach Mann:
position:=scintilla1.positionfromline(i)+countspacesinfront(temp); muss vor der Zeile
temp:=cutby(temp); stehen, sonst ist ja klar dass 0 rauskommt
Cutby schneidet ja alle Leerstellen ab *g*

Aber das mit der AV bleibt.
Wenn ich
s[1] aber durch
copy(s,1,1) ersetze funktioniert es?!
Peter J. Schneider
http://raketenwerfer.de/programmieren/delphi/index.html
Nes dar in da kev, sed un est a log!
  Mit Zitat antworten Zitat
Benutzerbild von Binärbaum
Binärbaum

Registriert seit: 19. Jan 2005
Ort: Elstra
764 Beiträge
 
Delphi 7 Enterprise
 
#10

Re: Kann Delphi jetzt kein s[1] mehr?

  Alt 27. Mär 2005, 23:37
Zitat von derpepe:
Aber das mit der AV bleibt.
Wenn ich
s[1] aber durch
copy(s,1,1) ersetze funktioniert es?!
Kann es sein, dass der String zu dem Zeitpunkt leer ist, also die Länge null hat?
Dann würde s[1] auch eine AV verursachen, copy hingegen nicht.

MfG
Binärbaum
There are exactly 10 kinds of people: those who understand binary, and those who don't.
---
"Software reift beim Kunden. Bei Hardware ist es anders: Hardware fault beim Kunden." - Rainer G. Spallek
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 4  1 23     Letzte »    


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 21:57 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz