| Autor |
Beitrag |
Dhakiyah
      
Beiträge: 327
Erhaltene Danke: 5
Windows 7
Delphi XE2
|
Verfasst: Mo 29.09.08 10:26
Hallo!
Jetzt habe ich gleich das nächste Problem.
Ich habe also die name.txt Datei.
Dort steht zum Beispiel:
Helmut (tab) Kohl
Angela (tab) Merkel
usw.
Jetzt möchte ich die ersten zwei Buchstaben vom Vornamen und dann den ersten Buchstaben vom Nachnahmen in eine extra *.txt Datei speichern. Und das in Kleinbuchstaben.
Beispiel:
hek
anm
usw.
Gruß
_________________ Es ist soooo flauschig !!!
|
|
DeddyH
Ehemaliges Mitglied
Erhaltene Danke: 1
|
Verfasst: Mo 29.09.08 10:35
Stichworte: Copy, Pos, AnsiLowerCase. Schau dazu mal in die Hilfe.
|
|
jaenicke
      
Beiträge: 19335
Erhaltene Danke: 1751
W11 x64 (Chrome, Edge)
Delphi 12 Pro, C# (VS 2022), JS/HTML, Java (NB), PHP, Lazarus
|
Verfasst: Mo 29.09.08 12:31
Ein paar kleine Hinweise:
Mit Delphi-Quelltext 1:
| Pos(#9, StringList[i]) | bekommst du in der StringList-Zeile i die Position des Tabzeichens.
Mit Delphi-Quelltext 1:
| Copy(StringList[i], StartPosition, 2) | bekommst du die zwei Zeichen ab StartPosition aus der Zeile.
Mit Delphi-Quelltext 1:
| LowerCase(Copy(StringList[i], StartPosition, 2)) | sind die beiden Zeichen klein geschrieben.
Die ersten beiden Zeichen sind am einfachsten, da musst du ja nur von Position 1 aus 2 Zeichen kopieren und mit LowerCase in Kleinbuchstaben umwandeln. Dann holst du dir die Position des Tabzeichens und holst ab dem folgenden Zeichen ein Zeichen. Das ganze packst du wieder in die i-te Zeile der Stringlist, und am Ende speicherst du die wieder mit SaveToFile.
|
|
DeddyH
Ehemaliges Mitglied
Erhaltene Danke: 1
|
Verfasst: Mo 29.09.08 12:46
Wenn Du AnsiLowerCase statt LowerCase benutzt, werden auch Umlaute umgewandelt.
|
|
Dhakiyah 
      
Beiträge: 327
Erhaltene Danke: 5
Windows 7
Delphi XE2
|
Verfasst: Mo 29.09.08 13:15
Titel: Hallo...
Die Umlaute habe ich schon ersetzt...
Muss ich die ersten zwei Zeichen in einen anderen String schieben?
So wie ich es gemacht habe geht es nicht...
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19: 20: 21: 22: 23: 24: 25: 26: 27: 28: 29: 30: 31: 32: 33: 34:
| procedure TForm1.Button1Click(Sender: TObject); var Datei: TStringList; i, p: Integer; Zeile: string; hilf: string; zahl: integer; begin Datei := TStringList.Create; Datei.LoadFromFile(ExtractFilePath(ParamStr(0))+ 'name.txt'); for i := 0 to Datei.Count - 1 do begin Zeile := Datei[i]; Zeile := Trim (Zeile); for p := 1 to Length(Zeile) do if Zeile[p] = #9 then Zeile[p] := '.';
zeile := stringreplace(zeile, 'Ä', 'Ae', [rfReplaceAll]); zeile := stringreplace(zeile, 'ä', 'ae', [rfReplaceAll]); zeile := stringreplace(zeile, 'Ö', 'Oe', [rfReplaceAll]); zeile := stringreplace(zeile, 'ö', 'oe', [rfReplaceAll]); zeile := stringreplace(zeile, 'Ü', 'Ue', [rfReplaceAll]); zeile := stringreplace(zeile, 'ü', 'ue', [rfReplaceAll]); zeile := stringreplace(zeile, 'ß', 'ss', [rfReplaceAll]);
hilf := copy(zeile[i],1, 2);
randomize; zahl:= random(succ(9999-1000))+1000;
Datei[i] := LowerCase(Zeile) + '@mail.de' + #9 + IntToStr(zahl) + hilf; end; Datei.SaveToFile(ExtractFilePath(ParamStr(0)) + 'name2.txt'); Datei.Free; end; |
_________________ Es ist soooo flauschig !!!
|
|
DeddyH
Ehemaliges Mitglied
Erhaltene Danke: 1
|
Verfasst: Mo 29.09.08 13:21
Die Reihenfolge müsste ja so sein:
- String trimmen
- Umlaute wandeln
- die ersten beiden Zeichen des Strings in Variable kopieren
- Tab suchen
- erstes Zeichen hinter dem Tab an Variable anhängen
- Tabs entfernen
- usw.
Delphi-Quelltext 1:
| hilf := copy(zeile[i],1, 2); |
Das ist so Quatsch, sry. Lass mal den Index weg, Du greifst ja hier auf einen String zu.
Delphi-Quelltext 1:
| hilf := copy(zeile,1, 2); |
|
|
Dhakiyah 
      
Beiträge: 327
Erhaltene Danke: 5
Windows 7
Delphi XE2
|
Verfasst: Mo 29.09.08 13:44
Titel: Hallo...
Delphi-Quelltext 1:
| hilf := copy(zeile,1, 2) + copy(zeile, 1 + Pos(#9, Zeile[i]), 2); |
Geht nicht...
Oh man... Das wird nix mehr mit mir und Delphi... 
_________________ Es ist soooo flauschig !!!
|
|
DeddyH
Ehemaliges Mitglied
Erhaltene Danke: 1
|
Verfasst: Mo 29.09.08 13:48
Versuch mal
Delphi-Quelltext 1:
| hilf := copy(zeile,1, 2) + copy(zeile, Succ(Pos(#9, Zeile)), 1); |
|
|
|