AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Sprachen und Entwicklungsumgebungen Sonstige Fragen zu Delphi Delphi aus char in bestimmen index eines string kopieren
Thema durchsuchen
Ansicht
Themen-Optionen

aus char in bestimmen index eines string kopieren

Ein Thema von dj-f · begonnen am 29. Mär 2008 · letzter Beitrag vom 29. Mär 2008
Antwort Antwort
Seite 1 von 2  1 2      
dj-f

Registriert seit: 29. Mär 2008
8 Beiträge
 
Delphi 7 Enterprise
 
#1

aus char in bestimmen index eines string kopieren

  Alt 29. Mär 2008, 20:15
tach,

ich hab bis montag früh ein problem zu lösen:

ich will aus einem array of char ein durch variable indizes bestimmtes zeichen in ein string an eine bestimmte stelle einfügen und der compiler spricht immer eine warnung aus. er combiliert es zwar, aber wenn die entsprechende procedur dran ist streikt er. genauer geht es um polyalphabetische verschlüsselung mit wechselnden matrizen.

Delphi-Quellcode:
type TMatrix= array[1..10,1..26,1..26]of char;

var f, k, n,i,j:integer; //n ist die nummer der verwendeten Marix und vorher deffiniert.
    txt1,txt2, pass:string; //txt1 ist original, txt2 verschüsselt
    X:TMatrix; //wird voher mit kleinen buchstaben gefüllt wie 10 sudokus.(so, dass in einer spalte kein buchstabe doppelt vonkommt usw.)


... begin
      if (ord(txt1[f])>96) and (ord(txt1[f])<123)then
      begin
        i:=0;
        j:=0;
        repeat j:=j+1 until
         X[n,j,1]=txt1[f];
        repeat i:=i+1 until
         X[n,1,i]=pass[k];
        txt2[f]:=X[n,j,i]; //geht nicht
      end
      else
        txt2[f]:=txt1[f]; //geht auch nicht!!
     end...
thx schonmal im voraus...
  Mit Zitat antworten Zitat
Benutzerbild von Sharky
Sharky

Registriert seit: 29. Mai 2002
Ort: Frankfurt
8.252 Beiträge
 
Delphi 2006 Professional
 
#2

Re: DRINGEND: aus char in bestimmen index eines string kopie

  Alt 29. Mär 2008, 20:17
Hai dj-f,

ich glaube Dir das es für Dich dringend ist ... aber im Titel eines Threads muss das nicht erwähnt werden!

Bitte ändere den Titel deines Threads in dem Du bei deinem obersten Posting auf den "Edit-Button" klickst.

Danke und Herzlich-Willkommen in der Delphi-PRAXiS.
Stephan B.
"Lasst den Gänsen ihre Füßchen"
  Mit Zitat antworten Zitat
Klaus01

Registriert seit: 30. Nov 2005
Ort: München
5.768 Beiträge
 
Delphi 10.4 Sydney
 
#3

Re: DRINGEND: aus char in bestimmen index eines string kopie

  Alt 29. Mär 2008, 20:19
Guten Abend,

in Deinem Code wird nicht ersichtlich wie f gesetzt ist/wird.

Grüße
Klaus
Klaus
  Mit Zitat antworten Zitat
dj-f

Registriert seit: 29. Mär 2008
8 Beiträge
 
Delphi 7 Enterprise
 
#4

Re:re

  Alt 29. Mär 2008, 20:23
ach ja...einfach in ner zählschleife.sozusagen für jeden einzelnen buchstaben.
  Mit Zitat antworten Zitat
Klaus01

Registriert seit: 30. Nov 2005
Ort: München
5.768 Beiträge
 
Delphi 10.4 Sydney
 
#5

Re:re

  Alt 29. Mär 2008, 20:26
Zitat von dj-f:
ach ja...einfach in ner zählschleife.sozusagen für jeden einzelnen buchstaben.
ja, dannn sage, zeige doch einmal von wo nach wo diese Zählschleife läuft?
Was für eine Fehlermeldung bekommst Du denn wenn Du den Code ausführst?
Geht nicht, ist nicht sehr detailiert.

Grüße
Klaus
Klaus
  Mit Zitat antworten Zitat
dj-f

Registriert seit: 29. Mär 2008
8 Beiträge
 
Delphi 7 Enterprise
 
#6

Re: aus char in bestimmen index eines string kopieren

  Alt 29. Mär 2008, 20:35
die fehlermeldung ist:"[Warning]: Unsafe code 'String index to var param'"

und die schleife um alles herum hier ,wenn du alles haben willst:
Delphi-Quellcode:
   for f:=1 to length(txt1)
     begin
     k:=k+1;
     if k>length(pass)then
      begin
        k:=1;
        n:=n+1;
        if n>10
        then n:=1;
      end;
      if (ord(txt1[f])>96) and (ord(txt1[f])<123)then
      begin
        i:=0;
        j:=0;
        repeat j:=j+1 until
         X[n,j,1]=txt1[f];
        repeat i:=i+1 until
         X[n,1,i]=pass[k];
        txt2[f]:=X[n,j,i]; //geht nicht
      end
      else
        txt2[f]:=txt1[f]; //geht auch nicht!!
     end...
  Mit Zitat antworten Zitat
Klaus01

Registriert seit: 30. Nov 2005
Ort: München
5.768 Beiträge
 
Delphi 10.4 Sydney
 
#7

Re: aus char in bestimmen index eines string kopieren

  Alt 29. Mär 2008, 21:09
.. aber trotz der Warnung sollte der Code doch funktionieren.

Abschalten kannst Du die Warnung so:
Delphi-Quellcode:
{$WARN UNSAFE_TYPE OFF}
{$WARN UNSAFE_CODE OFF}
{$WARN UNSAFE_CAST OFF}
Hier und hier findest Du dazu einige Statements.

Grüße
Klaus
Klaus
  Mit Zitat antworten Zitat
dj-f

Registriert seit: 29. Mär 2008
8 Beiträge
 
Delphi 7 Enterprise
 
#8

Re: aus char in bestimmen index eines string kopieren

  Alt 29. Mär 2008, 21:30
...die warnung ist jetzt weck aber nach wie vor: der code wird combiliert aber wen dann die prozedur aufgerufen wird kommt folgende fehlermeldung und die beiden zeilen werden vom copiler markiert...
ich versuch da jetzt schon ne halbe woche dran...

gruß
martin
Miniaturansicht angehängter Grafiken
fehler_546.jpg  
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

Registriert seit: 9. Dez 2005
Ort: Heilbronn
39.858 Beiträge
 
Delphi 11 Alexandria
 
#9

Re: aus char in bestimmen index eines string kopieren

  Alt 29. Mär 2008, 21:32
Du scheinst auf ein nicht initialisiertes Objekt zuzugreifen.
Markus Kinzler
  Mit Zitat antworten Zitat
dj-f

Registriert seit: 29. Mär 2008
8 Beiträge
 
Delphi 7 Enterprise
 
#10

Re: aus char in bestimmen index eines string kopieren

  Alt 29. Mär 2008, 21:48
in der repeat-until-bedingung kann ich die beiden ja auch miteinander vergleichen und die indices sind ja mit den gleichen variablen besetzt. *?*
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      


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 18:34 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